Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python知道复制过程(scp)是否完成?_Python_Shell_Centos7_Scp_Sshpass - Fatal编程技术网

如何使用python知道复制过程(scp)是否完成?

如何使用python知道复制过程(scp)是否完成?,python,shell,centos7,scp,sshpass,Python,Shell,Centos7,Scp,Sshpass,我有一个用于日志分析的python程序。 日志位于另一台具有端口号和密码的服务器中 我无法将python代码存储在该服务器中。因此,我需要将文件scp到存储程序的服务器 我这样做: popen('''sshpass -p "password" scp -r \ admin@192.158.11.109:/home/admin/DontDeleteMe/%s /home/admin/''' % fileName) 但是,如果文件很大,程序将在完成复制过程之前运行。popen()不会等待过

我有一个用于日志分析的python程序。 日志位于另一台具有端口号和密码的服务器中

我无法将python代码存储在该服务器中。因此,我需要将文件scp到存储程序的服务器

我这样做:

popen('''sshpass -p "password" scp -r \
    admin@192.158.11.109:/home/admin/DontDeleteMe/%s /home/admin/''' % fileName)
但是,如果文件很大,程序将在完成复制过程之前运行。

popen()
不会等待过程完成。您可以使用
subprocess.call()

根据Python的观点:

子流程
模块允许您生成新流程,连接到它们的输入/输出/错误管道,并获取它们的返回代码此模块打算替换几个旧模块和功能:

os.system
os.spawn*
os.popen*
popen2.*
commands.*
os.system
os.spawn*
os.popen*
popen2.*
commands.*