从bash脚本我怎么能快速找到一个80端口是否打开/听的服务器上。
在打开守护进程,但有时它掉下去,我怎样才能从文件检查所有文件,如果端口是开放的所有工作站,我发现了一种使用
nc -zw3 10.101.0.13 80 && echo "opened" || echo "closed"
但如何使用它散装从一个文件,我所著文件的样子:
10.101.0.13; 3333
10.101.0.15; 3334
10.101.0.17; 4143
10.101.0.21; 1445
10.101.0.27; 2443
10.101.0.31; 2445
10.101.0.47; 3443
10.101.0.61; 3445
我不得不分开的非工作的工作之一,但也与所有的线。 谢谢
我不得不分开的非工作的工作之一,但也与所有的线。
你可以通过文件循环,并且状态写入相应的文本文件
sed 's/;/ /' file | while read ip other
do
nc -zw3 $ip 80 && echo "$line" >> opened.txt || echo "$line" >> closed.txt
done
如果你想保留的IP; otherstuff
IP; otherstuff
格式,你可以用这个来代替一个
while read line
do
ip=$(sed 's/;.*//' <<<"$line")
nc -zw3 $ip 80 && echo "$line" >> opened.txt || echo "$line" >> closed.txt
done < file
您可以使用此bash
一个衬垫,
while IFS=";" read ip port; do nc -zw3 "$ip" "$port" && echo "$ip:$port => opened" || echo "$ip:$port => closed"; done<'ip_list_file.txt'
编辑:
尝试这个:
while IFS=";" read ip port; do nc -zw3 "${ip}" "${port}" && echo "${ip}:${port} => opened" || echo "${ip}:${port} => closed"; done<'ip_list'