登录到ssh并检查另一个服务器python的ssh登录

2024-04-26 10:01:28 发布

您现在位置:Python中文网/ 问答频道 /正文

此代码仅登录到服务器并检查连接

我需要登录到一个服务器,比如说(a)并检查ssh登录到服务器(B),从(B)我需要检查ssh是否为(C)。请帮助我转换此代码或一个新的代码来完成上述操作。蒂娅。在

#!/usr/bin/python

import subprocess
import sys

HOST="MYIP"
COMMAND="uname -a"

ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],
                       shell=False,
                       stdout=subprocess.PIPE,
                       stderr=subprocess.PIPE)
result = ssh.stdout.readlines()
if result == []:
    error = ssh.stderr.readlines()
    print >>sys.stderr, "ERROR: %s" % error
else:
    print result
print ("PASS")

Tags: 代码import服务器hoststderrstdoutsyserror
2条回答

你想要的是类似paramiko模块的东西

import sys, paramiko

if len(sys.argv) < 5:
    print "args missing"
    sys.exit(1)

hostname = sys.argv[1]
password = sys.argv[2]
source = sys.argv[3]
dest = sys.argv[4]

username = "YOUR USER NAME"
port = "YOUR PORT"

try:
    t = paramiko.Transport((hostname, port))
    t.connect(username=username, password=password)
    sftp = paramiko.SFTPClient.from_transport(t)
    sftp.get(source, dest)

finally:
    t.close()

您也可以将cmd命令传递给它

^{pr2}$

其中commands是应该执行的命令列表(ls或chmod)

我认为在这个特定的任务中使用Python并不是最好的。在

因此,我建议您使用这个简单的bash脚本:

ssh -q user@server exit
result=$(echo $?)

if [ $result -eq 0 ]; then
    echo "ok"
else
    echo "ko"
fi

将此脚本保存在服务器A上,然后+x并运行它:

^{pr2}$

相关问题 更多 >