免费注册 查看新帖 |

Chinaunix

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

如何用expect使用scp从本地上传软件包到远程机器上 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-10 00:35 |只看该作者 |倒序浏览
如题!
我写了一脚本能登录远程主机,并修改用户密码等。但就不能从本机上传文件到远程主机上。。。。。。 请大虾们帮手分析下。。。。
附件我的部分脚本:

前面部分是从一文件中获取字段并定义变量
。。。。。。。。。。。。。。。。。。。
  1.         spawn scp $rpmname ${username}@${hostIP}:/tmp/
  2. #       set a = 1
  3. #       while ($a < 2)
  4.         expect {
  5.                 "$key_init" {
  6.                         send "yes\r"
  7.                 }
  8.                 "$key_password" {
  9.                         send "$userpass\r"
  10. #                       sleep 10
  11.                 }
  12. #       }
  13.                 sleep 10
复制代码


运行脚本时,能执行scp $rpmname [email=$username@$hostIP:/tmp/]$username@$hostIP:/tmp/[/email]
但到了需要输入密码时没反应。。。。

出错如下:
  1. [root@test shell]# ./autoscp.exp hosttest.txt
  2. spawn scp expect-5.42.1-1.i386.rpm Eric@192.168.1.200:/tmp/
  3. Eric@192.168.1.200's password: spawn scp expect-5.42.1-1.i386.rpm Eric@192.168.1.201:/tmp/
  4. Eric@192.168.1.201's password: [root@test shell]#
复制代码

论坛徽章:
0
2 [报告]
发表于 2009-07-10 11:59 |只看该作者
密码应该已经输入了吧..你expect -d看一下

[ 本帖最后由 从未被和谐 于 2009-7-10 16:28 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2009-07-10 14:25 |只看该作者
epxect -d

论坛徽章:
0
4 [报告]
发表于 2009-07-15 10:52 |只看该作者
问题解决!

        spawn scp $rpmname ${username}@${hostIP}:/tmp/
        expect {
                "$key_init" { send "yes\r";exp_continue }
                "$key_password" { send "$userpass\r" }
        }
        interact
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP