监控线上服务的小脚本

利用shell脚本定时扫描线上服务是否开启,发邮件到相关人的邮箱。需要安装nmap yum install nmap 。

nmap [Scan Type(s)] [Options] {target specification}
参数:
[扫瞄类型]:主要的扫瞄类型有底下几种:
    -sT:扫瞄 TCP 封包已建立的连线 connect() !
    -sS:扫瞄 TCP 封包带有 SYN 标签的资料
    -sP:以 ping 的方式进行扫瞄
    -sU:以 UDP 的封包格式进行扫瞄
    -sO:以 IP 的协定 ( protocol ) 进行主机的扫瞄
[扫瞄参数]:主要的扫瞄参数有几种:
    -PT:使用 TCP 里头的 ping 的方式来进行扫瞄,可以获知目前有几部电脑存活(较常用)
    -PI:使用实际的 ping (带有 ICMP 封包的) 来进行扫瞄
    -p :这个是 port range ,例如 1024-, 80-1023, 30000-60000 等等的使用方式
[Hosts 位址与范围]:这个有趣多了,有几种类似的类型
    192.168.0.100  :直接写入 HOST IP 而已,仅检查一部;
    192.168.0.0/24 :为 C Class 的型态,
    192.168.*.*  :嘿嘿!则变为 B Class 的型态了!扫瞄的范围变广了!
    192.168.0.0-50,60-100,103,200 :这种是变形的主机范围啦!很好用吧!

#!/bin/bash
interface="http://192.168.7.63/monitor.php"
server=(\
"192.168.1.244:8300:大厅db代理" \
"192.168.1.244:6300:斗地主db代理" \
"192.168.1.244:80:http服务器"\
)
for str in ${server[@]}
  do
  IFS=':'
  arr=($str)
  nmap -sS ${arr[0]} -p ${arr[1]} | grep ${arr[1]} | grep open
  if [ $? -eq 0 ]; then
  else
    curl -d "ip=${arr[0]}&port=${arr[1]}&service=${arr[2]}" "$interface"
  fi
done

 

posted @ 2016-09-27 14:57  gaoqin31  阅读(182)  评论(0编辑  收藏  举报