免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2377 | 回复: 1
打印 上一主题 下一主题

pexpect rcp问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-06-30 21:41 |只看该作者 |倒序浏览
代码:
#!/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[i],ip_node[i],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[i],ip_node[i],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[i],ip_node[i],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:还能如何精简该代码?
谢谢大家!

论坛徽章:
4
白羊座
日期:2013-11-05 10:26:09冥斗士
日期:2015-11-17 14:19:55白银圣斗士
日期:2015-11-17 15:13:0815-16赛季CBA联赛之新疆
日期:2016-04-01 09:10:58
2 [报告]
发表于 2014-07-01 10:09 |只看该作者
回复 1# seacnboy
没有用过pexpect,只做个代码简化吧。
  1. #!/usr/bin/env python

  2. import pexpect,time

  3. def MyScp(ipAddr, srcFolder, ipNode, fileTimeStamp):
  4.     scp_swbackup=pexpect.spawn('scp -r ab@%s:%s  /HC/test/%s%s' %(ipAddr, srcFolder, ipNode, fileTimeStamp))
  5.     scp_swbackup.expect("Password:")
  6.     scp_swbackup.sendline("1234")

  7. file_time = time.strftime('%Y%m%d',time.localtime())
  8. ip_list=['10.1.1.1','10.2.2.2']
  9. ip_node=['A1','A2']
  10. file_name=['/home/cudb/swbackup','/home/cudb/automatedBackupStorage','/home/cudb/systemDataBackup']

  11. for addr in zip(ip_list, ip_node):
  12.     for location in file_name:
  13.         MyScp(addr[0], location, addr[1], file_time)

  14. print 'all file backuped!'
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP