Linux如何通过脚本,不停地telnet一个IP,记录telnet成功的时间并输出? 10
2个回答
展开全部
Telnet本身对另一台服务器检查时,容易退不出来。使用Nmap比较合适,然后写个如下脚本,变更IP及相应的端口及Sleep的时间就可以达到目标。
如下参考:
#!/bin/bash
#Purpose:check ip port
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
# Check if user is root
if [ $(id -u) != "0" ]; then
echo "Error: You must be root to run this script"
exit 1
fi
Cur_Dir="$(cd -P "$(dirname "${BASHSOURCE[0]}")" && pwd)"
Cur_Time="$(date +%Y%m%d%H%M%S)"
Dest_Ip=172.16.3.19
Dest_Port=22
if [ ! -f /usr/bin/nmap ];then
yum -y install nmap
else
:
fi
function Check_Port(){
Port_State=$(nmap -P0 -sS -p${Dest_Port} ${Dest_Ip}|awk '/STATE/{getline v;print v}'|awk '{print $2}')
if [ X${Port_State}==X'open' ];then
echo "${Dest_Ip} ${Dest_Port} is open" >>${Cur_Dir}/status.txt
echo "${Cur_Time}" >>${Cur_Dir}/status.txt
else
echo "${Dest_Ip} ${Dest_Port} is failure" >>${Cur_Dir}/status.txt
echo "${Cur_Time}" >>${Cur_Dir}/status.txt
fi
}
while true;
do
Check_Port
sleep 3
done
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询