shell脚本进行ping,telnet检测
代码如下:
#!/bin/sh serverPT() { ping=`ping $1` if [ "X'${ping} | grep "alive"'" != "X" ];then echo ping $1 ok telnet=`telnet $1 $2` if [ "Y'${telnet}|grep "Connected"'" != "Y" ];then echo telnet $1 $2 ok else echo 自动检测:telnet $1 $2 failed >> /export/home/liu/20120208/check.txt fi else echo 自动检测:ping $1 failed >> /export/home/liu/20120208/check.txt #/CheckMail/CSMrun.sh fi } serverip1="125.00.000.169" serverport1="8080" serverPT $serverip1 $serverport1
开始的时候有人告诉我shell不能telnet会陷入
但是我手动的telnet了一下
如果这个地址可以telnet通的话 4 5秒之后没有操作 就会自动断开
bash-2.05# telnet 125.00.000.169 8080
Trying 125.00.000.169...
Connected to 125.00.000.169.
Escape character is '^]'.
Connection to 125.00.000.169 closed by foreign host.
bash-2.05#
如果是不通的话 一段时间之后也是自动退出
bash-2.05#telnet 125.00.000.169 8080
telnet: Unable to connect to remote host: Connection timed out
bash-2.05#
所以我感觉是可以行得通的
但是 上面的代码我测试了下
不管IP地址通不通都显示的是 ping xx.xxx.xxx.xxx OK
那个仁兄可以指点指点我
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
现在没有linux,没法测试,应该是判断语句的问题
if [ "X'${ping} | grep "alive"'" != "X" ];then
主要问题在引号,自己想想看吧。看看代码高亮就知道了。
一下午 没人回复- -哦。。。