免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2253 | 回复: 4

[文本处理] expect 拷贝不了多个文件 [复制链接]

论坛徽章:
2
巨蟹座
日期:2013-12-07 16:51:13天秤座
日期:2013-12-11 15:12:14
发表于 2014-09-27 20:58 |显示全部楼层
本帖最后由 lxzkenney 于 2014-09-28 10:44 编辑

第一个问题:
为什么拷贝不了多个文件。拷贝单个文件可以。

spawn scp -r /tmp/*.rpm root@10.0.1.10:/china/
expect {
       "*assword:"
           {
                send "$passwd\r"
           }
       "(yes/no)?"
           {
             send "yes\r"
             expect "*asswd:"
             send "$passwd\r"
            }
}




第二个问题:

expect 怎么实现:
如果对端服务器是32位, 就拷贝expect 32位的包过去,如果 对端是64 的就拷贝expect 64位的包过去。 并进行安装。

我这个没法做判断。
#!/usr/bin/expect -f
set host [lindex $argv 0]
set passwd [lindex $argv 1]
set timeout 30
spawn scp -r /tmp/expect-5.43.0-8.el5.x86_64.rpm root@$host:/china/
expect {
       "*assword:"
           {
                send "$passwd\r"
           }
       "(yes/no)?"
           {
             send "yes\r"
             expect "$passwd"
             send "$passwd\r"
            }
}
spawn ssh root@$host "rpm -ivh /china/expect-5.43.0-8.el5.x86_64.rpm "
expect {
       "*assword:"
           {send "$passwd\r"}

       "(yes/no)?"
           {
             send "yes\r"
             expect "$passwd"
             send "$passwd\r"
             }
}

expect eof

论坛徽章:
1
双鱼座
日期:2014-08-25 19:13:11
发表于 2014-09-28 10:24 |显示全部楼层
第一个问题:
expect "$passwd"
楼主是不是写错了

论坛徽章:
2
巨蟹座
日期:2013-12-07 16:51:13天秤座
日期:2013-12-11 15:12:14
发表于 2014-09-28 10:43 |显示全部楼层
回复 2# fxpbupt


    恩  是写错了,这不是重点。 我之前登陆过 所以获取的是第一个。

论坛徽章:
2
白羊座
日期:2014-06-17 11:04:28午马
日期:2014-12-29 15:37:13
发表于 2014-09-28 10:48 |显示全部楼层
问题一:你把需要的放到一个目录,把那个目录拷贝过去就行了
问题二:
  1. #!/bin/bash
  2. SCP(){
  3.     expect -c "
  4.         set timeout=30;
  5.         spawn scp -o StrictHostKeyChecking=no -r /tmp/expect-5.43.0-8.el5.${version}.rpm root@$host:/china/;
  6.         expect *password:*;
  7.         send - $passwd\r;
  8.         expect eof;"
  9. }
  10. SSH(){
  11.     expect -c "
  12.         spawn ssh -o StrictHostKeyChecking=no root@$host "rpm -ivh /china/expect-5.43.0-8.el5.{version}.rpm ";
  13.         expect *password:*;
  14.         send - $passwd\r;
  15.         interact;"
  16. }
  17. version=`uname -m`
  18. host=$1
  19. passwd=$2
  20. SCP
  21. SSH
复制代码
基本也就是这样,具体优化自己弄吧

论坛徽章:
1
双鱼座
日期:2014-08-25 19:13:11
发表于 2014-09-28 11:28 |显示全部楼层
     -r      Recursively copy entire directories.  Note that scp follows sym-
             bolic links encountered in the tree traversal.
scp 没法一次传输多个文件,可以整个目录传
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP