小编use*_*764的帖子

python paramiko ssh

我是python的新手.我写了一个脚本来连接到主机并执行一个命令

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, username=user, password=pw)

print 'running remote command'

stdin, stdout, stderr = ssh.exec_command(command)
stdin.close()

for line in stdout.read().splitlines():
    print '%s$: %s' % (host, line)
    if outfile != None:
        f_outfile.write("%s\n" %line)

for line in stderr.read().splitlines():
    print '%s$: %s' % (host, line + "\n")
    if outfile != None:
        f_outfile.write("%s\n" %line)

ssh.close()

if outfile != None:
    f_outfile.close()

print 'connection to %s closed' %host

except:
   e = sys.exc_info()[1]
   print '%s' %e
Run Code Online (Sandbox Code Playgroud)

当远程命令不需要tty时工作正常.我找到了一个与Paramiko 一起使用的invoke_shell示例嵌套SSH会话.我对这个解决方案不满意,因为如果服务器有一个未在我的脚本中指定的提示 - >无限循环或脚本中的指定提示是返回文本中的字符串 - >不会收到所有数据.是否有更好的解决方案,也许stdout和stderr像我的脚本一样发回?

python ssh paramiko

16
推荐指数
2
解决办法
11万
查看次数

标签 统计

paramiko ×1

python ×1

ssh ×1