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

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

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

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

expect 用的是 tcl 语言,你可以用

exec sleep 1

if { [file isfile certs/cert.key] } {

send_user "file existing"

} else {

send_user "file not existing"

}

更多细节可以去学一下 tcl 语言。

shell编写的except自动化功能有限, 不能做到接口的调用, 对执行的结果很难评估的哦, 建议使用python程序搞定, 楼主上面的需求, 都不是问题, 这个可以帮助搞定, 另外, wo最近开发了一个自动化的批量管理服务器的程序, 里面就有上述功能!如果感兴趣的话, 可以一起讨论一下,看看my网名就行了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7556869.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存