如下所示,是否可以保存结果?原因,在第二和第三个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()
答案 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; }
}