我正在远程主机内执行gcloud命令。 但是,当我尝试使用ssh.exec_命令执行任何命令时,该命令似乎被执行了。但我如何才能确保它正确执行
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname = HOSTNAME,username = USERNAME,key_filename = FILENAME)
firewall_list = [gke-cluster-XXX-all,gke-cluster-XXX-ssh,gke-cluster-XXX-vms]
cmd = 'gcloud compute firewall-rules delete'+firewall_list
stdin,stdout,stderr = ssh.exec_command(cmd)
ssh.close()
如何检查ssh.exec_命令是否成功执行
谢谢
有两种方法,但一般来说,您应该使用以下方法评估正在执行的命令的退出代码:
stdout.channel.recv_exit_status()
注意,这只适用于Martin Prikryl提到的简短输出或快速命令,否则会死锁
根据正在执行的命令,您可以检查零退出代码,也可以根据命令排除特定的退出代码
虽然不是首选,但您也可以在stdout和stderr上验证readlines()或read()的内容,但这通常不是必需的
相关问题 更多 >
编程相关推荐