免费注册 查看新帖 |

Chinaunix

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

一个expect问题,如何在本机收到连接远程主机得到的错误? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-09 11:20 |只看该作者 |倒序浏览
set loginuser "root"                  
set ipaddr [lindex $argv 0]
set loginpass [lindex $argv 1]   
set timeout 300
set cmd_prompt "]#|~]?"

#-------------------------------------------------- login by ssh
spawn ssh $loginuser@$ipaddr
set timeout 300
expect {
     -re "Are you sure you want to continue connecting (yes/no)?" {
         send "yes\r"
     } -re "assword:" {
         send "$loginpass\r"
     } -re "Permission denied, please try again." {
         exit
     } -re "Connection refused" {
         exit
     } timeout {
         exit
     } eof {
         send "echo'can not connect $ipaddr'>/root/error\r"
         exit
     }
}

expect {
  -re "assword:" {
     send "$loginpass\r"
  }
  -re $cmd_prompt {
     send "\r"
  }
}

#---------------------------------------------------- now,we do some commands
exec sleep 1
expect {
  -re $cmd_prompt {
     send "df -h\r"
  }
}

#--------------------------------------------------
expect {
  -re $cmd_prompt {
     send "exit\r"
  }
}


exit
#interact

    本意就是想在批量对远程服务器进行执行脚本动作的时候,如果有密码不对的或者windows主机 等情况记录下来输入到本地机的一个文件里。
  这个应该怎么写?

论坛徽章:
0
2 [报告]
发表于 2010-02-09 15:45 |只看该作者
木有人来回答。。。。,我还没研究出来。。。

论坛徽章:
0
3 [报告]
发表于 2010-02-09 16:24 |只看该作者
估计是大家都没理解你的意思吧。
log_file -a filename 可以把expect交互过程输出到filename中。
不知道是不是你想要的。

论坛徽章:
0
4 [报告]
发表于 2010-02-09 16:43 |只看该作者
就是这样,假如对100台服务器进行一个脚本的部署,我写了一个SH 是读IP 读密码 然后执行EXP。
     这个EXP里面分了很多种情况,就像我贴出来的那段话,比如有密码不对的,有超时的。
     我就是想把这些没有成功执行操作的IP记下来,比如超时了,我就记下来 某IP timeout ,记到本地机器的LOG文件中。
     不过要的并不是整个交互的过程。

论坛徽章:
0
5 [报告]
发表于 2010-02-09 17:54 |只看该作者
用log_user 0关闭输出,用send_user把需要的信息输出,然后重定向到一个文件。不过这样抑制交互的输出了。
或者自己写个function实现类似log_file, send_log功能。这样工作量稍大。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP