需要帮助通过ssh python向服务器发送命令

时间:2010-06-22 20:36:47

标签: python

我正在尝试通过ssh连接到服务器并在某些文本文件中转储“df-h”输出。

p=pexpect.spawn('ssh some.some.com')

i=p.expect([ssh_newkey,'password:',pexpect.EOF])
if i==0:
    print "I say yes"
    p.sendline('yes')
    i=p.expect([ssh_newkey,'password:',pexpect.EOF])
if i==1:
    p.sendline("somesome")
    p.expect(pexpect.EOF)
    i = p.sendline('df -h > /home/test/output.txt')
    print i
    response = p.before
    print response

print p.before

我正在尝试连接到服务器并将服务器数据转储到某个文本文件中。 我的问题是i = p.sendline('df -h> /home/test/output.txt')没有做任何事, 基本上我的输出文件是空的。 请帮帮我。

感谢。

4 个答案:

答案 0 :(得分:3)

您可能希望使用paramiko来管理SSH连接上的操作。

答案 1 :(得分:1)

  

我的问题是i = p.sendline('df -h > /home/test/output.txt')没有做到   任何

是不是将i设置为29?这是你的意思吗?

  

基本上我的输出文件是空的。

你如何知道那个?此代码中没有任何内容检查远程计算机上是否存在该文件。

  

请帮帮我。

远程计算机上的用户是否有权写入/home/test目录,确实,该目录是否存在?你真的给我们提供的关于你正在做什么的暗示,确切地说是什么语境,以及结果到底发生了什么,对你有什么帮助,除了用你这样的问题加油你希望你最终< em>告诉我们你忽略的许多关键数据。帮助我们帮助您! - )

答案 2 :(得分:1)

如果你发现自己在同一台机器上做了很多ssh工作,那么你可能想看看像func这样的东西。

答案 3 :(得分:1)

看起来你在这里使用Python作为shell。为什么不直接将相关命令保存在bash文件中并在一个命令中运行?我认为这样做会更好。我还建议你启用SSH公钥认证,它比密码更好。使用subprocess模块从Python内部生成进程。

如果您出于某种原因需要以这种方式做事,我想这个建议没有帮助。

相关问题