简练的端口扫描脚本

简介:

脚本名:monitor_port.pl

作用:扫描特定端口是否正常

脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env perl
 
  ( $sec , $min , $hour , $mday , $mon , $year ) = ( localtime )[0..5];
  ( $sec , $min , $hour , $mday , $mon , $year ) = (
     sprintf ( "%02d" $sec ),
     sprintf ( "%02d" $min ),
     sprintf ( "%02d" $hour ),
     sprintf ( "%02d" $mday ),
     sprintf ( "%02d" $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);
}

文件1、port.list 定义要扫描的端口内容,

eg:

1
2
172.16.2.2      httpd     tcp     80
172.16.2.2      tomcat     tcp     8080

文件2、port_status.log 记录端口失败信息

eg:

1
2
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即可!

1
* /5  * * * *  cd  /opt/monitor ; . /monitor_port .pl >  /dev/null  2>&1



本文转自 西索oO 51CTO博客,原文链接:http://blog.51cto.com/lansgg/1582720

相关文章
|
监控 网络协议 Linux
Linux利用nc命令脚本批量检测服务器指定端口是否开放
nc命令脚本批量检测服务器指定端口是否开放
1917 0
Linux利用nc命令脚本批量检测服务器指定端口是否开放
|
Python
python脚本基于端口开启服务识别信息收集
python脚本基于端口开启服务识别信息收集
480 0
|
运维 Python Windows
如何通过Python脚本查找并终止占用指定端口的进程
在日常的开发和运维过程中,某些端口被意外占用是一个常见的问题。这种情况可能导致服务无法启动或冲突。本文将介绍如何通过Python脚本查找并终止占用指定端口的进程,以确保系统的正常运行。
|
Java Shell
通过端口杀掉进程的脚本
通过端口杀掉进程的脚本
195 0
|
Java Shell
通过端口杀掉进程的脚本
通过端口杀掉进程的脚本
211 0
|
Shell Linux
Linux脚本Shell脚本来实现一次性kill多个端口的进程
Linux脚本Shell脚本来实现一次性kill多个端口的进程
428 0
|
Shell
Shell脚本检测服务器或者ip哪些端口是开放的都是开放了哪些端口
Shell脚本检测服务器或者ip哪些端口是开放的都是开放了哪些端口
272 0
|
Java Linux
linux一键启动和停止多个端口服务脚本:springboot项目打jar包指定多个端口
linux一键启动和停止多个端口服务脚本:springboot项目打jar包指定多个端口
507 0
|
关系型数据库 MySQL 应用服务中间件
阿里云服务器web环境搭建脚本以及开放安全组端口
每次换服务器的时候都需要重新安装环境,就需要我们在网上找各种安装包并配置,所以一劳永逸用shell脚本来解决。
阿里云服务器web环境搭建脚本以及开放安全组端口
|
运维 Oracle 关系型数据库
【大数据开发运维解决方案】kill占用指定端口进程(定时自动重启weblogic脚本)
上面是总结的定时自动重启weblogic脚本以及如果不慎用root启动weblogic后如何恢复oracle用户的运维。 1、通过ps-ef |grep命令找到想要杀死的进程信息,然后配合awk和sed组织好要杀死的进程清单对应的shell语句,并通过sh命令自动执行kill: ps -ef |grep /home/apache-tomcat-7.0.76/|awk 'NR&amp;gt;1 {print $2}' | sed -e &quot;s/^/kill -9 /g&quot; | sh -
【大数据开发运维解决方案】kill占用指定端口进程(定时自动重启weblogic脚本)