shell脚本ping和telnet

发布于 2021-11-18 22:06:43 字数 1389 浏览 850 评论 5

#!/bin/sh

serverPT()
{
ping=`ping -c 1 $1`
if [ "X'${ping} | grep "alive"'" != "X" ];then
echo ping $1 ok
        telnet=`telnet $1 $2`
        if [ "X'${telnet}|grep "Connected"'" != "X" ];then
        echo telnet $1 $2 ok
        else
        echo 自动检测:telnet $1 $2 failed >> /20120208/check.txt
else
echo 自动检测:ping $1 failed >> /20120208/check.txt
/CheckMail/CSMrun.sh
fi
done
}

serverip1 = "125.76.000.169"
serverport1 = "8080"

serverPT $serverip1 $serverport1

就是现在系统是ping通就返回XXX.XX.XX.XXX is alive  否则就什么也没有
telnet通就显示 connected XXX.XXX.XXX  否则只显示一个try xxx.xxx.xxx
我不怎么熟悉shell  可能语法 标点都都错了 望指出
有朋友告诉我说shell不支持telnet 会陷进去 
如果telnet通了 显示就是
bash-2.05# 123.sh   
Trying 125.00.000.169...
Connected to 125.00.000.169.
Escape character is '^]'.
Connection to 125.00.000.169 closed by foreign host.
不通就是
try 126.00.000.168
找不到断开。。。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(5

因为看清所以看轻 2021-11-24 23:35:21

#!/bin/bash

serverPT()
{
ping=`ping -c 1 $1`
if [ "X'${ping} | grep "alive"'" != "X" ];then
echo ping $1 ok
        telnet=`(sleep 1;)|telnet $1 $2`
        if [ "X'${telnet}|grep "Connected"'" != "X" ];then
        echo telnet $1 $2 ok
        else
        echo 自动检测:telnet $1 $2 failed >> /20120208/check.txt
        fi
else
        echo 自动检测:ping $1 failed >> /20120208/check.txt
fi
}

serverip1="192.168.15.188"
serverport1="80"

serverPT $serverip1 $serverport1

德意的啸 2021-11-24 20:07:34

#!/bin/bash

serverPT()
{
ping=`ping -c 1 $1`
if [ "X'${ping} | grep "alive"'" != "X" ];then
echo ping $1 ok
        telnet=`(sleep 1;)|telnet $1 $2`
        if [ "X'${telnet}|grep "Connected"'" != "X" ];then
        echo telnet $1 $2 ok
        else
        echo 自动检测:telnet $1 $2 failed >> /20120208/check.txt
        fi
else
        echo 自动检测:ping $1 failed >> /20120208/check.txt
fi
}

serverip1="192.168.15.188"
serverport1="80"

serverPT $serverip1 $serverport1

梅窗月明清似水 2021-11-24 14:09:42

我写过类似的脚本,就试试多方货没活着。。

shell里面有个$?的变量,用于返回上一个命令的结果。

ping -c 1 xxx.xxx.xxx.xxx

如果成功,$?=0,否则为其他值,没必要单独赋值。

telnet的结果不能够赋值给变量,因为这个命令在没有断开连接前,根本不会返回。

shell确实不能直接在后台跑telnet,估计他会检查输入是不是一个tty,如果不是就退出了。

当然了,可以欺骗telnet认为输入是一个tty。比如,tee这个命令。

自此以后,行同陌路 2021-11-23 02:16:37

自动ping telnet 然后不通就反馈信息

夜司空 2021-11-22 17:30:36

做这个的目的在哪里……

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