Linux下三种方式实现自动Telnet
时间:2005-10-01 来源:xcats
一、Shell实现,文件名:autotelnet.sh,代码如下:
(sleep 1;echo "root";sleep 1;echo "123456";sleep 1;echo "en";sleep 1;echo "1qazse4";sleep 1;echo "conf t";sleep 1;echo "int fa0/1";sleep 1;echo "switchport mode multi";sleep 1;echo "end";sleep 1;echo "exit") | telnet 10.32.17.10
二、Expect来实现,文件名:autotelnet.exp,代码如下:
#!/usr/bin/expect
set timeout 100
set TERM xterm
set SERVER "10.32.17.10"
set USER "root"
set PASSWD "123456"
spawn telnet
expect "telnet> "
send "open $SERVER "
expect "Username:"
send "$USER "
expect "Password:"
send "$PASSWD "
expect "longjiang-zero>"
send "en "
expect "Password:"
send "$PASSWD "
expect "longjiang-zero#"
send "conf t "
expect "longjiang-zero(config)#"
send "int fa0/1 "
expect "longjiang-zero(config-if)#"
send "switchport mode multi "
expect "longjiang-zero(config-if)#"
send "end "
expect "longjiang-zero#"
send "exit "
interact
三、Python来实现,文件名:autotelnet.py,代码如下:
#!/usr/bin/python
import telnetlib
host = '10.32.17.10'
user = 'root'
password = '123456'
commands = ['en',password,'conf t','int fa0/1','switchport mode multi','end']
tn = telnetlib.Telnet(host)
tn.read_until("Username:")
tn.write(user + " ")
tn.read_until("Password:")
tn.write(password + " ")
for command in commands:
tn.write(command+' ')
tn.write("exit ")
print tn.read_all()
print 'Finish!'
具体环境不做介绍。