在执行Python Paramiko的命令后,我如何保存结果?

时间:2011-11-15 14:53:12

标签: python save paramiko

如下所示,是否可以保存结果?原因,在第二和第三个stdout.read()我无法达到结果。

import paramiko
import os
dssh = paramiko.SSHClient()
dssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
dssh.connect('192.168.1.250', username='root', password='pass')
import os
stdin, stdout, stderr = dssh.exec_command('ifconfig')
print stdout.read()
print ('Sleeping 2 seconds!')
os.system('sleep 2')
stdin, stdout, stderr = dssh.exec_command('ls -l')
print stdout.read()
print stdout.read()
print stdout.read()
dssh.close()

2 个答案:

答案 0 :(得分:24)

想象一下stdout是一个普通的文件。如果你第二次打电话给file.read(),你会得到什么? - 没有(空字符串),除非文件在外面发生了变化。

保存字符串:

output = stdout.read()

您可能会发现Fabric更易于使用(它使用paramiko来执行命令。)

答案 1 :(得分:5)

您可以尝试使用此通用API

public class AccountSignUpModel {

  [EmailAddress(ErrorMessage = "Email is invalid")]
  [Required(ErrorMessage = "Email is required")]
  [Remote("IsEmailAvailable", "Validation", ErrorMessage = "Email already used", HttpMethod = "Get")]
  public String Email { get; set; }

}