pexpect rcp问题
代码:#!/usr/bin/env python
import pexpect,time
file_time=time.strftime('%Y%m%d',time.localtime())
ip_list=['10.1.1.1','10.2.2.2']
ip_node=['A1','A2']
file_name=['/home/cudb/swbackup','/home/cudb/automatedBackupStorage','/home/cudb/systemDataBackup']
for i in range(len(ip_list)):
scp_swbackup=pexpect.spawn('scp -r ab@%s:/home/cudb/swbackup/HC/test/%s%s' %(ip_list,ip_node,file_time))
scp_swbackup.expect("Password:")
scp_swbackup.sendline("1234")
for i in range(len(ip_list)):
scp_autobackup=pexpect.spawn('scp -r ab@%s:/home/cudb/automatedBackupStorage/HC/test/%s%s' %(ip_list,ip_node,file_time))
scp_autobackup.expect("Password:")
scp_autobackup.sendline("1234")
for i in range(len(ip_list)):
scp_sysbackup=pexpect.spawn('scp -r ab@%s:/home/cudb/systemDataBackup/HC/test/%s%s' %(ip_list,ip_node,file_time))
scp_sysbackup.expect("Password:")
scp_sysbackup.sendline("1234")
print 'all file backuped!'
问题:
1:文件夹下的所有文件不能都被SCP到当前文件夹,有文件被遗漏掉,求破?
2:如果在“scp_swbackup.sendline("1234")"后面跟一句”child.interact()“,每次都需要手动键入回车键,才能进行下一步的scp动作,怎么处理呢?
3:还能如何精简该代码?
谢谢大家!
回复 1# seacnboy
没有用过pexpect,只做个代码简化吧。#!/usr/bin/env python
import pexpect,time
def MyScp(ipAddr, srcFolder, ipNode, fileTimeStamp):
scp_swbackup=pexpect.spawn('scp -r ab@%s:%s/HC/test/%s%s' %(ipAddr, srcFolder, ipNode, fileTimeStamp))
scp_swbackup.expect("Password:")
scp_swbackup.sendline("1234")
file_time = time.strftime('%Y%m%d',time.localtime())
ip_list=['10.1.1.1','10.2.2.2']
ip_node=['A1','A2']
file_name=['/home/cudb/swbackup','/home/cudb/automatedBackupStorage','/home/cudb/systemDataBackup']
for addr in zip(ip_list, ip_node):
for location in file_name:
MyScp(addr, location, addr, file_time)
print 'all file backuped!'
页:
[1]