Welcome 微信登录

首页 / 操作系统 / Linux / Llinux下的expect的简单用法及举例

1、使用expect前,需要先安装两个rpm包,下载:免费下载地址在 http://linux.linuxidc.com/用户名与密码都是www.linuxidc.com具体下载目录在 /2012年资料/7月/27日/Llinux下的expect的简单用法及举例/# rpm -ihv expect-5.43.0-8.el5.i386.rpm
# rpm -ihv expect-devel-5.43.0-8.el5.i386.rpm2、使用脚本文件的例子--实现自动输密码
#!/usr/bin/expect -f
set password 123456
#download
spawn scp root@192.168.1.218:/root/a.wmv /home/yangyz/
set timeout 300
expect "root@192.168.1.218"s password:"
set timeout 300
send "$password "
set timeout 300
send "exit "
expect eof
3、在sh脚本中嵌入expect的例子--通过连上一个公网的服务器再转跳到一个内网的服务器上,用脚本实现不用输密码,直接使用./goto.sh servername
#!/bin/bash
passmsmallq10="a"
passzhsh="a"
passfcwr="b"
passwapfx="c"
passadfx="d"
ip1="200.100.10.10"
ip2="10.100.100.70"
ip3="10.100.100.60"
ip4="10.100.100.10"
ip5="10.100.100.20"
case $1 in
"zhsh") passstr=$passzhsh ipstr=$ip2 ;;
"fcwr") passstr=$passfcwr ipstr=$ip3 ;;
"wapfx") passstr=$passwapfx ipstr=$ip4 ;;
"adfx") passstr=$passadfx ipstr=$ip5 ;;
*) echo "The parameter $1 isn"t exist"
exit 0 ;;
esac
command1="ssh -l m_smallq -p 36000 $ip1"
command2="ssh -l mqq -p 36000 $ipstr"
expect -c "
        set timeout 60;
        spawn $command1;
        expect {
                "221.130.15.10"s password:" {send "$passmsmallq10 "; exp_continue}
                "m_smallq" {send "$command2 "; exp_continue}
                "mqq"s password:" {send "$passstr ";interact}
                }
        "
对上面例子的expect的解说
expect -c "..."  --里面输入命令
expect {...}     --里面的多行记录,从上向下扫描匹配,谁先匹配谁先处理。
4、ssh到另一台机子执行df -h后退出,要点是send后面可以跟多个命令,通过 来分行成多个命令
#!/bin/bash
ip1="183.62.178.191"
command1="ssh -l root -p 14322 $ip1"
expect -c "
        spawn $command1;
        expect {
                "183.62.178.191"s password:" {send "aa "; exp_continue}
                "root@" {send "df -h exit "; exp_continue}
                }
        " Linux中的定时任务调度—crontab命令Ubuntu中的用户管理(六)硬盘配额相关资讯      Expect  Llinux命令 
  • Expect 小脚本  (03月30日)
  • 使用expect运行动态脚本  (08/07/2015 17:53:51)
  • 使用expect命令实现远程管理集群和  (02/07/2014 14:18:10)
  • CentOS安装expect  (02月20日)
  • shell脚本无密码登录 expect使用  (03/08/2014 13:58:23)
  • Linux批量部署工具Expect  (08/12/2013 20:46:57)
本文评论 查看全部评论 (0)
表情: 姓名: 字数