我有一个用于日志分析的python程序。 该日志位于具有端口号和密码的另一台服务器中。
我无法将python代码存储在该服务器中。因此,我需要将文件保存到存储程序的服务器上。
我这样做了:
popen('''sshpass -p "password" scp -r \
admin@192.158.11.109:/home/admin/DontDeleteMe/%s /home/admin/''' % fileName)
但是如果文件很大,程序将在完成复制过程之前运行。
答案 0 :(得分:1)
popen()
不等待该过程完成。您可以使用subprocess.call()
:
exitcode = subprocess.call('''sshpass -p "password" scp -r \
admin@192.158.11.109:/home/admin/DontDeleteMe/%s /home/admin/''' % fileName,
shell=True)
根据Python的doc:
subprocess
模块允许您生成新进程,连接到它们的输入/输出/错误管道,并获取它们的返回码。 该模块打算替换一些较旧的模块和功能:os.system os.spawn* os.popen* popen2.* commands.*