免费注册 查看新帖 |

Chinaunix

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

[系统管理] expect脚本循环读取IP地址逻辑有问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-06-08 10:05 |只看该作者 |倒序浏览
本帖最后由 158878318 于 2015-06-08 10:39 编辑
  1. #!/usr/bin/expect
  2. if {$argc < 2} {
  3.         puts  "$argv0 err params\n"
  4.         exit 1
  5. }

  6. set timeout 10
  7. set User [lindex $argv 0]
  8. set Passwd [lindex $argv 1]
  9. set Port [lindex $argv 2]

  10. proc ssh_exp {Login Pass PORT} {
  11.         puts $Login;
  12.         puts $Pass;
  13.         puts $PORT;
  14.         puts ------------------
  15. }
  16. ssh_exp $User $Passwd $Port
  17. set file [open ip.txt r]
  18. while {[gets $file line]>=0} {
  19.         spawn ssh -p $Port $User@$line
  20.         expect {
  21.                 "(yes/no)" {send "yes\n"}
  22.                 "*assword:" {send "$Passwd\n"}
  23.         }
  24.         expect {
  25.                 "*#*" {send "ls -l\n"}
  26.         }
  27.         expect eof               
  28.   }
  29. close $file
  30. expect eof
  31. exit
复制代码
脚本的意思是读取文件里的IP地址并,登陆到服务器中执行命令,while部分我使用了expect eof,每次登陆后停止10秒在循环下一个,

脚本可以执行没有问题,但是感觉while部分这么写还是有点问题,因为对expect一些东西不是很了解,大家帮我看下有什么更好的方式,学习一下。

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
2 [报告]
发表于 2015-06-08 19:39 |只看该作者
空格去哪儿了?

论坛徽章:
0
3 [报告]
发表于 2015-06-09 15:56 |只看该作者
回复 2# waker


    版主帮我看下以上代码,代码是可以执行的没有问题,我想用tcl语言来判断spwan 开启一个新的进程后,发送的命令是否执行成功,不知道要怎么写。请版主赐教。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP