shell脚本进行ping,telnet检测

发布于 2021-11-04 17:01:05 字数 1410 浏览 819 评论 2

代码如下:
#!/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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浅沫记忆 2021-11-08 14:06:49

现在没有linux,没法测试,应该是判断语句的问题

if [ "X'${ping} | grep "alive"'" != "X" ];then

主要问题在引号,自己想想看吧。看看代码高亮就知道了。

尐偏执 2021-11-08 09:07:19

一下午  没人回复- -哦。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文