linux通过shell脚本实现telnet交互式自动化

Posted wx5c41c128ce3e9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux通过shell脚本实现telnet交互式自动化相关的知识,希望对你有一定的参考价值。

首先需要有expect:

可以通过以下命令查看是否安装,如果未安装直接 yum install expect,如果不行请自行百度安装。

[root@localhost home]# whereis expect
expect: /usr/bin/expect /usr/share/man/man1/expect.1.gz

[root@localhost home]# expect

编写脚本如下:

#!/bin/bash
passwd="123456"
/usr/bin/expect <<-EOF
set timeout 50
spawn ssh root@10.10.22.38
expect
"*yes/*" send "yes\\r"; exp_continue
"*password:" send "$passwd\\r"

expect "*]*"
send "df -h\\r"
EOF

解释一下:

/usr/bin/expect <<-EOF  #开始用expcet执行标志
EOF  #结束标志
expect  #是expect要实现交互的命令集
[root@localhost home]# ssh root@10.10.22.38
"*yes/*"
"*password:"  send "$passwd\\r"  #如上如果遇到返回值 *代表无限字符,后面是password:则执行 send发送字符串 \\r回车
expect "*]*"    #等待出现]执行下一条命令
send "df -h\\r" #执行命令并回车。
#!/bin/bash
passwd="admin"
/usr/bin/expect <<-EOF
set timeout 50
spawn telnet 0
expect
"Login*" send "admin\\r"

expect
"*assword:" send "$passwd\\r"

expect
"*admin>" send "security enable protocol-detect\\r"

expect
"*admin>" send "security set port-abnormal detect 2\\r"

expect
"*admin>" send "security show protocol-detect status\\r"

expect
"*admin>" send "security show port-abnormal-detect level\\r"

expect
"*admin>" send "exit\\r"


EOF

 


以上是关于linux通过shell脚本实现telnet交互式自动化的主要内容,如果未能解决你的问题,请参考以下文章

Linux写一个shell脚本,要实现在键盘输入一个进程号,输出这个进程号的子进程pid,怎么写?

从 shell 脚本生成交互式 telnet 会话

pythontelnet批量连接脚本怎么能多个不同网段连接

通过linux的shell脚本批量处理交换机配置变更

3种shell自动交互的方法

Linux - 通过expect工具实现脚本的自动交互