如何用shell脚本实现自动telnet

来源:互联网 发布:大数据分析系统源代码 编辑:程序博客网 时间:2024/05/18 19:37

转自:http://blog.csdn.net/edei2004/article/details/3694021 

很多人认为telnet象passwd和su一样,无法通过管道和输入转向使其自动工作,但实际上telnet是支持输入转向的.虽然,严格的说,shell脚本无法使telnet进入交互状态,但它确实可你使你进入远程系统并运行你希望的命令后退出.这远比用rsh(remsh,rcmd)更令人放心,
使用如下的脚本可以达到你的要求: 
(sleep 1;echo user;sleep 1; echo passwd;echo yourcmd ;sleep 1)|telnet remotehost 
其中user,passwd,yourcmd,remotehost分别更换成你的用户名,用户口令,你想要运行的命令,远程机器名或IP便可以了. 如果要想使用脚本进入交互状态,可以使用expect.

如果你要通过telnet某个IP的端口来得到部分数据,则可以用以下命令

(sleep 5;) | telnet IP PORT 这样就可以在telnet后将PORT在5秒内输出的数据打印到屏幕上,然后自动退出

EG:
tempValue="KEY"
str4=`(sleep 1;echo AA;sleep 1; echo 123; sleep 1; echo tail -f /aa/log/a.log;sleep 1) | telnet ${IP} | grep ${tempValue}`
num4=`echo ${#str4}`
if [ ${num4} -eq 0 ];then
     echo "==::在a.log文件中没有找到关键字KEY,请检查!"
     sheet4="@NULL"
else
     echo "==::在a.log文件有找到关键字KEY!"
     sheet4="@OK"
fi

原创粉丝点击