python中各种文件的scp ETA
我有一个Python脚本,它将文件“file.rar”从不同的服务器复制到我的笔记本电脑上,每个复制的文件都将被重命名。scp命令作为子进程发送,因此它将转到bg并让scp并行运行。我已经创建了ssh密钥文件,因此不需要任何密码python中各种文件的scp ETA,python,subprocess,scp,Python,Subprocess,Scp,我有一个Python脚本,它将文件“file.rar”从不同的服务器复制到我的笔记本电脑上,每个复制的文件都将被重命名。scp命令作为子进程发送,因此它将转到bg并让scp并行运行。我已经创建了ssh密钥文件,因此不需要任何密码 for ind in range(201,205) : finalname = 'fich'+str(ind)+'.rar' comm = 'scp user@192.168.1.'+str(ind)+':file.rar '+finalname
for ind in range(201,205) :
finalname = 'fich'+str(ind)+'.rar'
comm = 'scp user@192.168.1.'+str(ind)+':file.rar '+finalname
proc = subprocess.Popen([comm], shell='TRUE')
eval( 'proc' + str(ind) + ' = proc' )
我希望在控制台中同时显示每个scp的单个进度条。我可以买一个
sts = os.waitpid(proc201.pid, 0)
但这将只显示其中一个过程,并将保留脚本直到它完成。我希望在我的控制台上有这样的东西
file201.rar 37% 11MB 2.2MB/s 00:18 ETA
file202.rar 47% 11MB 2.2MB/s 00:28 ETA
file203.rar 27% 11MB 2.2MB/s 00:18 ETA
file204.rar 37% 11MB 2.2MB/s 00:08 ETA
谢谢 您在这里使用eval是不必要的。只需将您的子流程对象存储在一个数组中:proc_list.appendproc可能很有趣:用于SSH,非常容易使用,您可以传递回调以进行进度监控。