初级ping脚本
for i in `cat /root/ip.txt`
do
ping=`ping -c 3 $i > /dev/null`
if [ $? -ne 0 ];then
echo "ping $i fail" >> /root/fail.txt
else
echo "ping $i ok" >> /root/ok.txt
fi
done
编写放IP的文档 ip.txt
# 速度慢
ZB-FTP-Server01:~/python # cat ping.sh
#!/bin/bash
for ip in `cat /root/python/ip.txt`
do
ping -c 1 $ip |grep -q 'ttl=' && echo $ip ok || echo $ip failed
done
# 速度快
ZB-FTP-Server01:~/python # cat p2.sh
#!/bin/bash
>ping.log
for ip in `cat /root/ip3.txt`
do
nohup ping -c 1 $ip |grep -q 'ttl=' && echo $ip ok || echo $ip failed >> ping.log &
done
初级nc端口脚本:
#!/bin/bash
for i in `cat ip.txt`
do
#nc -v -w 1 $i 3389
nc -zw1 $i 3389
if [ $? -eq 0 ]
then
echo "$i 3389 is ok !" >> ./result_ip.txt
else
nc -zw1 $i 3390
if [ $? -eq 0 ]
then
echo "$i 3390 is ok!" >> ./result_ip.txt
else
nc -zw1 $i 22
if [ $? -eq 0 ]
then
echo "$i 22 is ok!" >> ./result_ip.txt
else
nohup ping -c 1 -w 1 $i |grep -q 'ttl=' && echo $i ping is ok || echo $i ping is failed >> result_ip.txt &
fi
fi
fi
done
wait
exit 0
高级写法(多线程):
#!/bin/bash
IPLIST=./ip.txt
THREAD=30
TMPFIFO=/tmp/$$.fifo
mkfifo $TMPFIFO
exec 5<>${TMPFIFO}
rm -rf ${TMPFIFO}
for((i=1;i<=$THREAD;i++))
do
echo ;
done >&5
for i in $(cat ${IPLIST})
do
read -u5
{
nc -zw1 $i 3389
if [ $? -eq 0 ]
then
echo "$i 3389 is ok !" >> ./result_ip.txt
else
nc -zw1 $i 3390
if [ $? -eq 0 ]
then
echo "$i 3390 is ok!" >> ./result_ip.txt
else
nc -zw1 $i 22
if [ $? -eq 0 ]
then
echo "$i 22 is ok!" >> ./result_ip.txt
else
#ping -c 1 $i |grep -q 'ttl=' && echo $i ok || echo $i failed # echo $? is 0
nohup echo $(ping -c 1 -w 1 $i | grep -q 'ttl=' && echo $i ping is "ok" || echo $i ping is "failed") >> ./result_ip.txt &
# echo $(ping -c 1 -w 1 10.112.21.39| grep -q 'ttl=' && echo ping is "ok" || echo ping is "failed")
fi
fi
fi
echo "" >&5
} &
done
wait
exec 5>&-
exit 0