linuxexpect执行脚本
expect -c 用全路径?比如 /usr/bin/expect -c
㈡ Linux操作系统中expect如何使用
在Linux系统中,expect是一个自动化交互套件,也是一个用来处理交互的命令;利用expect,我们可以将交互过程写在一个脚本上,让其自动化完成,从而帮助运维人员提高工作效率、节约时间。那么Linux系统中expect该如何使用?我们来看看详细的内容介绍。
Linux系统中expect该如何使用?
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。
expect自动交互流程:
spawn启动指定进程--expect获取指定关键字--send向指定程序发送指定字符--执行完成退出。
注意:该脚本能够执行的前提条件是安装了expect
yum install -y expect
expect常用命令总结:
spawn 交互程序开始后面跟命令或者指定程序;
expect 获取匹配信息匹配成功则执行expect后面的程序动作;
send exp_send 用于发送指定的字符串信息;
exp_continue 在expect中多次匹配就需要用到;
exit 退出expect脚本;
eof expect 执行结束 退出;
set 定义变量;
puts 输出变量;
set timeout 设置超时时间。
㈢ linux:关于expect脚本,为什么这么写不对呢求解
mkdir又不是expect的命令。
#!/usr/local/bin/expect
spawnsu-root
expect"Password:"
send"123456 "
sleep3
send"mkdir/usr/local/ddddd "
㈣ 用expect实现telnet登陆到linux系统后,再执行一个shell脚本,待这个shell脚
参考一种类自然语言的脚本语言:
001 var {v_time} value datetime
002 screen.text at point {10} {30} string {2. telnet ipv4 (192.168.186.132:23) test , datetime: ~v_time~}
003
004 telnet.connect ip {192.168.186.132} port {23}
005 telnet.recv expect {Username:}
006 telnet.send {cisco%0a}
007 telnet.recv expect {Password}
008
009 telnet.send {cisco%0a}
010 telnet.recv expect {>}
011 telnet.send {enable%0a}
012 telnet.set onrecv {More} send { }
013 telnet.set delay {200} ms after per byte send
014 telnet.send {show version%0a}
015 telnet.recv for {5} seconds
016
017 telnet.send {show run%0a}
018 telnet.recv for {5} seconds
019 telnet.send {exit%0a}
020 telnet.close
021
022 var {v_time} value datetime
023 screen.text at point {10} {60} string {telnet tested end. datetime:~v_time~}
024
025 run.end

--------------------------------------------------------------------
简单网络管理语言(Simple Network Management Language)是一种类自然语言的脚本语言,它采用snmp、telnet、ping、dns、arp、ssh、tcp、udp、web等协议访问网络设备,内置smtp协议用于告警等邮件的发送,支持excel、mysql、sqlite等3种方式进行网管数据的存取。
最新版本: snml8.13(ladybird20200205) utf8&ipv6
项目托管地址:https://github.com/ladybirdSnml/snmlipv6utf8snmptelnetsshweb
打包下载:https://ladybirdsnml.github.io/snmlipv6utf8snmptelnetsshweb/snml_utf8ipv6.zip
㈤ linux expect讲解怎么使用
[root@zuozhang PYTHON_TEST]# rpm -ql expect package expect is not installed 查看是否有安装,如果没有安装安装一个即可。 yum install expect*
㈥ Linux自动登陆expect 远程主机执行本地脚本
两台ssh之间做个密钥,尽量不要使用expect写脚本。因为expect交互式登录是需要你在脚本中写密码的。
㈦ linux下expect脚本问题
#!/usr/bin/expect-f
if{$argc!=1}{
puts"usage:$argv0IP"
exit1
}else{
setIP[lindex$argv0]
}
setpingcmd[format"ping-c100%s"$IP]
settimeout6000
#比如远程用户叫做test
setdestusertest
#比如远程服务器IP为如下
setdestip192.168.0.123
setdestpath"$destuser@$destip"
#比如用户密码叫做test
setdestpasswordtest
#ssh登录
spawnssh$destpath
#######################
expect{
-re".*yes/no.*"{
exp_send"yes "
exp_continue
}
-re".*assword.*"{
exp_send"$destpassword "
}
}
#比如ssh登录以后的提示符是test@Testserver>
expect{
-re".*test@Testserver.*"{
exp_send"$pingcmd "
}
}
expect{
#如果输出timeout字符,则Control+C结束pingcmd
#这里用的是DestinationHostUnreachabl替换timeout。因为本人机器上没有timeout.
-re".*DestinationHostUnreachabl.*"{
#输入Control+c
exp_send"
