Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用paramiko执行dd命令但未得到任何返回_Python_Linux_Python 2.7_Paramiko - Fatal编程技术网

Python 使用paramiko执行dd命令但未得到任何返回

Python 使用paramiko执行dd命令但未得到任何返回,python,linux,python-2.7,paramiko,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

我使用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上编写命令时可以得到结果。

您是否检查了
stderr
?可能该命令执行不正确。

如果要检查其是否成功,请尝试检查其返回代码。如果它是零,那么它就是成功

您需要使用Paramiko transport检查返回代码

chan = s.get_transport().open_session()

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

谢谢你的回复。返回代码为“0”,因此我认为paramiko成功执行了该命令。顺便问一下,dd命令最初是否可能导致我无法在stdout.read()中获得任何输出?Hmmmm。。。。真奇怪。。。您是否尝试过手动执行命令。。可能是您的dd版本未生成任何输出。。只是一个猜测是的,但在stderr中没有。因此,我认为该命令执行成功。在另一个线程中有一个建议,使用二进制文件的完整路径:好的,我将尝试创建一个用户线程来处理这个dd命令。但是完整的路径不是这个问题的问题。。。