Linux如何通过脚本,不停地telnet一个IP,记录telnet成功的时间并输出?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux如何通过脚本,不停地telnet一个IP,记录telnet成功的时间并输出?相关的知识,希望对你有一定的参考价值。
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 参考技术A 不需要使用脚本吧,直接telnet ip 端口 -a就行了追问
这个命令会输出telnet成功的时间吗?因为有时快有时慢,想测试
追答telnet命令就可以实现你想要的功能,除非你想练练脚本,不然没有必要非要用脚本
追问telnet应该只能一次吧,我需要是不停地telnet看能否连上,还有连上花的时间
追答time telnet ip
linux12运维企业实战笔录 -- 04 telnet批量多端口
文章目录
一、使用脚本批量Telnet测试端口是否连通
在一些情况下,我们无法安装nc,ansible等工具,所以一些批量操作,我们只能使用shell实现。下面分享一个近期工作中使用到的批量Telnet端口的脚本,希望对大家能够帮助:
二、telnet脚本
[root@k8s-m-01 ~]# ll
-rw-r--r-- 1 root root 226 Jul 11 10:35 ip_info
-rw-r--r-- 1 root root 253 Jul 11 10:35 result.log
-rw-r--r-- 1 root root 495 Jul 11 2022 telnet.sh
[root@ -m-01 ~]# cat telnet.sh
#!/bin/bash
check_telnet()
for ip_port in $(cat ip_info|grep -v '^#')
do
CHECK_PORT=$(echo $ip_port|awk -F: 'print $2')
CHECK_IP=$(echo $ip_port|awk -F: 'print $1')
echo -e "\\n"| telnet $CHECK_IP $CHECK_PORT |grep "Connected to\\|Escape character" >/dev/null
if [ $? -eq 0 ];then
echo "$LOCALIP result $CHECK_IP $CHECK_PORT connected"
else
echo "$LOCALIP result $CHECK_IP $CHECK_PORT can not Connected &> dev/null"
fi
done
check_telnet >result.log
三、ip_info
ip和端口: 冒号分割
[root@k8s-m-01 ~]# ll
-rw-r--r-- 1 root root 226 Jul 11 10:35 ip_info
-rw-r--r-- 1 root root 253 Jul 11 10:35 result.log
-rw-r--r-- 1 root root 495 Jul 11 2022 telnet.sh
[root@k8s-m-01 ~]# cat ip_info
#请使用ip:port 或者 域名:port 的格式编辑以下内容;
#如果是一个列表,可以使用#对不进行测试的IP进行注释
192.168.1.1:8080
192.168.1.2:22
192.168.11.20:22
192.168.11.20:20
192.168.11.21:20
四、日志输出
[root@k8s-m-01 ~]# ll
-rw-r--r-- 1 root root 253 Jul 11 10:35 result.log
[root@k8s-m-01 ~]# cat result.log
result 192.168.1.1 8080 can not Connected &> dev/null
result 192.168.1.2 22 can not Connected &> dev/null
result 192.168.11.20 22 connected
result 192.168.11.20 20 can not Connected &> dev/null
result 192.168.11.21 20 can not Connected &> dev/null
以上是关于Linux如何通过脚本,不停地telnet一个IP,记录telnet成功的时间并输出?的主要内容,如果未能解决你的问题,请参考以下文章