linux expect, spawn自动登录
2014-01-23 12:30
316 查看
今天写一个脚本,需要与终端输出交互,学习着使用了简单的spawn与expect,感觉很方便,记录一下。
1. 首先要保证linux server上安装了expect,我自己的服务器跑的是suse 10.2,比较老的版本,默认没有安装expect,下了个rpm包装上先。(现在外面跑得suse enterprise基本都是11或者12的,看来要赶紧升级了,不然下个rpm包很多都没有对应的版本)安装了之后,/usr/bin/目录下有expect可执行文件。
2. 关于expect,先说明一下,只有spawn的内容才能expect捕获到,expect的内容包括了:终端的输出,eof和超时。
3. 根据个简单的登录脚本说明下:
其中:
1)#!/usr/bin/expect,不再是#!/bin/sh了
2) set timeout 30,首先设置一个超时时间;
3) spawn一个ssh登录进程;
4) 当终端输出“Password”时输入密码;
5) 登录之后,输入一个路径;
6) interact,等待交互;如果此处不用interact,就会自动退出了;
4. 简单交互,使用spawn与expect很方便;expect也有很多高级的应用,没有研究过,有本书专门讲这个的,叫《exploring expect》,在这里有的下载:http://bbs.chinaunix.net/thread-1769951-1-1.html
1. 首先要保证linux server上安装了expect,我自己的服务器跑的是suse 10.2,比较老的版本,默认没有安装expect,下了个rpm包装上先。(现在外面跑得suse enterprise基本都是11或者12的,看来要赶紧升级了,不然下个rpm包很多都没有对应的版本)安装了之后,/usr/bin/目录下有expect可执行文件。
2. 关于expect,先说明一下,只有spawn的内容才能expect捕获到,expect的内容包括了:终端的输出,eof和超时。
3. 根据个简单的登录脚本说明下:
#!/usr/bin/expect--> 1 set timeout 30--> 2 spawn ssh root@192.168.1.199 -p 22--> 3 #expect { # "(yes/no)?" {send "yes\r"} #} expect { "Password:" {send "****\r"}--> 4 } expect { "#" {send "cd /home/software\r"}--> 5 } interact-->6
其中:
1)#!/usr/bin/expect,不再是#!/bin/sh了
2) set timeout 30,首先设置一个超时时间;
3) spawn一个ssh登录进程;
4) 当终端输出“Password”时输入密码;
5) 登录之后,输入一个路径;
6) interact,等待交互;如果此处不用interact,就会自动退出了;
4. 简单交互,使用spawn与expect很方便;expect也有很多高级的应用,没有研究过,有本书专门讲这个的,叫《exploring expect》,在这里有的下载:http://bbs.chinaunix.net/thread-1769951-1-1.html
相关文章推荐
- Linux使用expect实现自动登录的脚本
- Linux中使用expect脚本实现远程机器自动登录
- linux借助expect完成自动登录
- [置顶] Linux下用expect实现ssh自动登录并执行脚本
- linux自动登录脚本expect
- Linux通过expect配置自动登录
- linux中使用expect实现自动登录
- 通过expect 和 spawn自动登录服务器
- 在linux下如何通过expect正确执行自动切换登录,并且执行命令和脚本
- linux expect自动登录ssh,ftp
- Linux 通过 expect 实现 tenlnet 自动登录
- 用了一天的时间,linux下expect实现ssh自动登录服务器记,鄙视下网上各种抄来抄去残段子
- linux expect远程自动登录以及执行命令
- linux expect自动登录ssh,ftp
- 用了一天的时间,linux下expect实现ssh自动登录服务器记,鄙视下网上各种抄来抄去残段子
- linux expect详解(ssh自动登录)
- linux借助expect完成自动登录
- linux expect自动登录s…
- Linux下用expect做自动登录工具
- Linux下使用expect实现跳板机自动跳转/免密登录/自动登录(转)