shell脚本ping和telnet
#!/bin/shserverPT(){ping=`ping-c1$1`if["X'${ping}|grep"alive"'"!="X"];thenechoping$1o...
#!/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 可能语法 标点都都错了 望指出 展开
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 可能语法 标点都都错了 望指出 展开
1个回答
展开全部
很明显的一个错误就是if要用fi结束,你脚本里有两个if,我却只能找到一个fi;
第二点就是telnet那部分,telnet=`telnet $1 $2`应该就死住没反应了,你手动模拟一下就好了,比如我:
telnet 192.168.243.1 3131
Trying 192.168.243.1...
Connected to 192.168.243.1.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
如果我不键入^](ctrl+])的话,这个telnet进程是不会结束的,不会结束的话,脚本也就不会进行下一步。
第二点就是telnet那部分,telnet=`telnet $1 $2`应该就死住没反应了,你手动模拟一下就好了,比如我:
telnet 192.168.243.1 3131
Trying 192.168.243.1...
Connected to 192.168.243.1.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
如果我不键入^](ctrl+])的话,这个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.
我没有任何操作 过了4 5 秒他就退出来了
追答
那就是超时退出了,当然这样的话,也可以算成功。那你先把if和fi配套的问题解决一下就好了。我试着理解并修改了一下,你看看可以么?这个逻辑是ping通才试着telnet,否则直接ping失败,然后退出。
#!/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
fi
else
echo 自动检测:ping $1 failed >> /20120208/check.txt
/CheckMail/CSMrun.sh
fi
done
}
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询