我正在尝试通过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')没有做任何事, 基本上我的输出文件是空的。 请帮帮我。
感谢。
答案 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内部生成进程。
如果您出于某种原因需要以这种方式做事,我想这个建议没有帮助。