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