使用paramiko执行dd命令但没有得到任何回报

时间:2014-01-11 14:27:05

标签: python linux python-2.7 paramiko

我使用python paramiko模块远程执行dd命令,如下所示:

paramiko.util.log_to_file('paramiko.log')
s = paramiko.SSHClient()
s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
s.connect('ip', 22, "account", "password")

command = r"dd if=/dev/zero of=/test bs=4M count=1024 oflag=direct"
stdin, stdout, stderr = s.exec_command( command )
print( stdout.read().strip() )

但是我从stdout.read()得到什么都没有返回字符串(只有一个空行),原因是什么?

PS:当我直接在CLI上编写命令时,我可以得到结果。

2 个答案:

答案 0 :(得分:1)

你检查stderr了吗?可能命令没有正确执行。

答案 1 :(得分:1)

如果要检查其成功,请尝试检查其返回代码。如果它为零则成功。

您需要使用Paramiko传输来检查返回码

chan = s.get_transport().open_session()

# Execute thecommand
chan.exec_command(cmd)
print chan.recv_exit_status() # This will print its return code