脚本名:monitor_port.pl
作用:扫描特定端口是否正常
脚本:
#!/usr/bin/env perl ($sec,$min,$hour,$mday,$mon,$year) = (localtime)[0..5]; ($sec,$year) = ( sprintf("%02d", $sec), sprintf("%02d", $min), $hour), $mday), $mon + 1), $year + 1900 ); $date="$year-$mon-$mday $hour:$min:$sec"; ########################################################## open (FH,"/opt/monitor/port.list") || die; while (defined($port_tn=<FH>)) { ($host_ip,$mod_n,$port_t,$port_n)=split(/\t/,$port_tn); chomp $host_ip; chomp $mod_n; chomp $port_t; chomp $port_n; ch_result(); } #################################################### sub ch_result { open LOG,">>/opt/monitor/port_status.log"; select LOG; if($port_t eq 'tcp'){ `/usr/bin/nc -z -w2 $host_ip $port_n`; $flag = `echo $?`; }else{ `/usr/bin/nc -u -z -w2 $host_ip $port_n`; $flag = `echo $?`; } ########################### if($flag != 0){ print "$date $host_ip $mod_n $port_t $port_n is closed!\n"; } close(LOG); }
eg:
172.16.2.2 httpd tcp 80 172.16.2.2 tomcat tcp 8080
文件2、port_status.log 记录端口失败信息
eg:
2014-11-25 20:30:01 172.16.2.2 httpd tcp 80 is closed! 2014-11-25 20:30:01 172.16.2.2 tomcat tcp 8080 is closed!
使用方法:
只要将此脚本添加到crontab即可!
*/5 * * * * cd /opt/monitor; ./monitor_port.pl > /dev/null 2>&1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。