preface(见面礼):

仅扫tcp端口:

netstat -tnlp|egrep -i "$1"

zabbix discovery_i++

udp+tcp

netstat -tunlp|egrep -i "$1"

zabbix discovery_i++_02

<2,go始终>

(服务器端口扫描,数据保存到shell array)

  1 #!/bin/bash


  2 portarray=(`netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort |uniq   2>/dev/null`)

  3 length=${#portarray[@]}

  4 printf "{\n"

  5 printf  '\t'"\"data\":["

  6 for ((i=0;i<$length;i++))

  7 do

  8  printf '\n\t\t{'

  9      printf "\"{#TCP_PORT}\":\"${portarray[$i]}\"}"

 10       if [ $i -lt $[$length-1] ];then

 11            printf ','

 12       fi

 13 done

 14 printf "\n\t]\n"

 15 printf "}\n"

zabbix discovery_数据保存_03

想了解对应的端口 的pid 及进程名的见上面的相关检索命令,ruiy在此不述;

zabbix discovery_bash_04