因为工作原因,经常需要对很多IP和很多端口进行traceroue测试,所以自己整了一个脚本,这个脚本只适合我自己用,想用的可以根据情况自己改一下。
脚本内容:
#!/bin/bash
date > "./"$HOSTNAME"_ping_result.txt"
date > "./"$HOSTNAME"_trace_result.txt"
cat ./traceip.txt|grep -v '^#'|while read line
do
ip_tcpudp=`echo $line|awk '{print $1}'`
ip_addr=`echo $line|awk '{print $2}'`
ip_port_all=`echo $line|awk '{print $3}'`
#echo "ping -c 4 $ip_addr" >> "./"$HOSTNAME"_ping_result.txt"
#ping -c 4 $ip_addr >> "./"$HOSTNAME"_ping_result.txt"
OLD_IFS="$IFS"
IFS="/"
arr=($ip_port_all)
IFS="$OLD_IFS"
for ip_port in ${arr[@]}
do
echo "status:trace $ip_addr:$ip_port $ip_tcpudp"
if [ $ip_tcpudp == "UDP" ];then
echo "traceroute -n -U -p $ip_port $ip_addr" >> "./"$HOSTNAME"_trace_result.txt"
traceroute -n -U -p $ip_port $ip_addr >> "./"$HOSTNAME"_trace_result.txt"
else
echo "traceroute -n -T -p $ip_port $ip_addr" >> "./"$HOSTNAME"_trace_result.txt"
traceroute -n -T -p $ip_port $ip_addr >> "./"$HOSTNAME"_trace_result.txt"
fi
done
#sleep 30
donetraceip.txt 内容格式
TCP 10.168.0.1 22/1061 TCP 10.168.0.2 22/1061 TCP 10.168.0.3 22/1061
协议名+空格或者TAB+IP+空格或者TAB+端口号(端口用/分开)