linux的except

转载 2013年12月02日 22:32:47
#!/usr/local/bin/expect
set PASSWD [lindex $argv 1]
set IP     [lindex $argv 0]
set CMD [lindex $argv 2]
spawn ssh $IP $CMD
expect "(yes/no)?" {
send "yesr"
expect "password:"
send "$PASSWDr"
} "password:" {send "$PASSWDr"} "*host " {exit 1}
expect eof

注解:

第一行,制定使用/usr/local/bin目录下的expect命令对后面的程序进行解释。
第二行,三行,四行,分别从命令行参数中获取要登录的主机IP地址,登陆密码,以及要执行的命令。
第五行,大概就是要触发这样一个事件,执行ssh $IP $CMD命令。
第6行至第11行就是expect的整个交互过程了。
如果读取到(yes/no)?提示符,就输入yes并回车,如果读取到password:提示输入密码的字符串,就输入用户登录密码(root用户)。
当然如果不是第一次登陆,以前已经登录过的话,当输入ssh $IP $CMD回车后,会直接提示输入密码也就是说会读到字符串”* password:”,这个时候会输入密码回车(send "$PASSWDr").
另外,如果主机不可达的话,(yes/no)?和”password:”的可能都不会出现,系统会提示:
“No route to host”退出程序。

相关文章推荐

Linux expect 用法

expect是建立在tcl基础上的一个工具,它用来让一些需要交互的任务自动化地完成。因为expect是基于tcl的,所以需要你的系统中安装有tcl如何检查?[root@dev ~]# whereis ...
  • catoop
  • catoop
  • 2015年09月08日 13:48
  • 17280

expect spawn、linux expect 用法

使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄、收藏。可是为什么要这么写却不知其然。本文用一个最短的例子说明脚本的原理。   脚本代码如下:  ...
  • ysdaniel
  • ysdaniel
  • 2011年12月10日 13:46
  • 44966

linux下的expect的安装和使用

1、安装expect 首先安装tcl(下载地址:http://nchc.dl.sourceforge.net/sourceforge/tcl/tcl8.4.11-src.tar.gz) 解压 t...

用python实现远程复制 (scp + expect )

scp 功能很强大,但需要人工输入 password, 当然可以通过把 公钥保存在远程主机的 ~/.ssh 目录中,而后就不用输入password,但这需要配置. 用 sshpass 可能在命令输入...

C++ except范例

  • 2013年10月17日 22:28
  • 5.16MB
  • 下载

Linq To Sql Concat Union Intersect Except

  • 2010年08月10日 14:26
  • 28KB
  • 下载

Python异常(try...except)对代码运行性能的影响

本文主要测试并探讨Python中的异常处理会对代码运行性能造成的影响。

gcc_except_table的资料

  • 2010年11月11日 23:09
  • 84KB
  • 下载

except as e中的‘e’的作用总结

1.第一个解释 这个e是异常类的一个实例,如果我们完整地解释这个问题,我觉得还是从Python的自定义异常类说起比较好。 假如,我们现在自定义一个简单的异常类: class MyError(E...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux的except
举报原因:
原因补充:

(最多只允许输入30个字)