天天看点

如何用shell脚本实现自动telnet

很多人认为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

继续阅读