Linux telnet远程机器,自动完成交互输入,运行远程命令脚本

11297阅读 0评论2011-04-14 greendays
分类:

有一个远程的busybox机器只能支持telnet访问,而我需要在另外一个机器上访问该机器自动提取某些数据,以下是方法

方法一,用第三方expect包,在CentOS上调试通过

以下命令都在本地机器上执行

首先安装expect
#yum install expect

#cat myjob1.sh
#!/usr/bin/expect -f
spawn telnet xxx.xxx.xxx.xxx       #远程机器IP
expect -re "login"
send "yourusername\n"          #登录远程机器的用户名
expect -re "Password"
send "yourpw\n"          #登录远程机器的密码
expect -re "#"
send "date\n"          #登录后要在远程机器上执行的本地命令,这是只是查询远程机器的当地时间,你可以换成其他本地命令或脚本
expect -re "#"
send "exit\n"          #完成后退出
interact

方法二, 用内部命令,不用第三方包,在CentOS上调试通过
# cat myjob1.sh
#! /bin/bash
(
echo 'yourusername'          #登录远程机器的用户名
sleep 1
echo 'yourpw‘          #登录远程机器的密码
sleep 1
echo 'date'          #登录后要在远程机器上执行的本地命令
sleep 1
) | telnet xxx.xxx.xxx.xxx

要定时执行的话只需要把以上的脚本加到crontab就行

(以上为博主原创并测试通过)
上一篇:TCP状态转换
下一篇:如何实现telnet自动命令执行