如果服务器接受sftp会话,我不会为pexpect烦恼,而是将paramiko
SSH2模块用于Python:
import paramikotransport=paramiko.Transport("10.10.0.0")transport.connect(username="service",password="word")sftp=paramiko.SFTPClient.from_transport(transport)filestat=sftp.stat("/opt/ad/bin/email_tidyup.sh")该代码打开与服务器的SFTPClient连接,您可以在该连接上使用stat()检查文件和目录的存在。
如果该文件不存在,则sftp.stat将引发IOError(“无此文件”)。
如果服务器不支持sftp,则可以使用:
import paramikoclient=paramiko.SSHClient()client.load_system_host_keys()client.connect("10.10.0.0",username="service",password="word")_,stdout,_=client.exec_command("[ -f /opt/ad/bin/email_tidyup.sh ] && echo OK")assert stdout.read()SSHClient.exec_command返回一个三元组(stdin,stdout,stderr)。在这里,我们只检查是否有任何输出。您可以改为更改命令或检查stderr中是否有任何错误消息。



