用expect实现telnet登陆到linux系统后,再执行一个shell脚本,待这个shell脚

用expect实现telnet登陆到linux系统后,再执行一个shell脚本,待这个shell脚本输出”成功”后,退出系统。... 用expect实现telnet登陆到linux系统后,再执行一个shell脚本,待这个shell脚本输出”成功”后,退出系统。 展开
 我来答
jianaisnml
2020-04-01
知道答主
回答量:4
采纳率:0%
帮助的人:2442
展开全部

参考一种类自然语言的脚本语言:

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

快又稳
2024-10-28 广告
在Linux环境下配置基于域名的虚拟主机,需安装Apache或Nginx等Web服务器,并编辑配置文件。以Apache为例,需创建虚拟主机配置文件,指定域名、文档根目录等,然后启用该配置文件并重启Apache服务。同样,Nginx也需在相应... 点击进入详情页
本回答由快又稳提供
百度网友5311d79
推荐于2017-09-15 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3240万
展开全部
#!/usr/bin/expect
set ipAddr "172.28.0.11"
set userName "root"
set passwd "mypasswd"
set myScript "/home/script.sh"
set timeout 10
spawn telnet $ipAddr
expect {
    "login:" {
          send "$userName\n"
          expect "assword:"
          send "$passwd\n"
     }
     "*$" {
          send "$myScript\n"
          expect "成功"
          send "exit\n"
     }
}

暂时没有环境,所以未加验证,试试吧。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linux_07_xudan
2014-01-22 · 超过30用户采纳过TA的回答
知道答主
回答量:168
采纳率:0%
帮助的人:77.6万
展开全部
shell输出成功,这个没法判断的,你可以绕一个弯。先把shell输出到一个文件里面,再写一个判断语句,如果有你输出的内容就是输出成功,您看如何?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
让服务成就美好生活
2014-01-22 · 让服务成就美好生活!
让服务成就美好生活
采纳数:1497 获赞数:2381

向TA提问 私信TA
展开全部
expect可以实现你所说的上述功能.
追问
我知道能实现,如何实现?主要是实现如何判断shell输出“成功“不会,请教!
追答
实现例子请参考xiehuahere的代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式