| SA对于服务器的监控是很必要的,但是如果管理的服务器很多,也不可能24小时在线监控。本文的主要内容就是实现,服务器如果出现异常,会通过短信方式,直接把服务器当前状况发送到管理员手机,SA可以第一时间知道服务器发生异常,从而以最快的时间予以处理。
 原理很简单,中国移动提供139.com这样的邮箱,如果有邮件到达,会同时发送邮件标题到管理员对应手机,邮箱名是 你的手机号@139.com,例如:13036110648@139.com,当此邮箱接收到邮件时,会同时给13036110648这个手机发送邮件到达信息,邮箱注册地址http://mail.139.com/
 在实现下面功能之前,请务必先注册好邮箱(此功能现在移动免费提供)
 下面我们来实现一些功能:
 监控用户登录我们知道用户一般登录的时候都会加载登录脚本 ~/.bashrc,那么我们可以在这个脚本里面加入:
 #echo 'at now + 1 minutes -f /data/checklogin.sh > /dev/null 2>&1' >> ~/.bashrc
 那么此用户登录的时候就会在1分钟之后,执行/data/checklogin.sh这个脚本(为什么要在一分钟之后,因为如果是自己登陆,就不需要发送短信,给自己时间来用atrm 取消此任务计划),此脚本内容如下
 #cat /data/checklogin.sh
 #!/bin/sh
 echo "`who`" >> /data/login.log
 mail -s "`who`" 13036110648@139.com < /data/login.log
 #chmod a+x /data/checklogin.sh
 #touch /data/login.log
 #chmod a+w /data/login.log
 这里做完就OK了,那么每次这个用户登录的时候,就会把当前的已登录用户信息以短信方式发送到管理员手机号
 当然你也可以监控所有用户登录,那么就应该修改/etc/bashrc这个登录脚本
 监控服务运行状态#!/bin/sh
 server_all_list=(\
 59.175.212.145:80 \
 59.175.212.145:21 \
 59.175.212.145:3306 \
 )
 date=$(date +"%Y-%m-%d_%H:%M:%S")
 server_all_len=${#server_all_list[*]}
 i=0
 while [ ${i} -lt ${server_all_len} ]
 do
 server_ip=$(echo ${server_all_list[$i]} | awk -F ':' '{print $1}')
 server_port=$(echo ${server_all_list[$i]} | awk -F ':' '{print $2}')
 if /usr/bin/nc -vv -z -w 3 ${server_ip} ${server_port} > /dev/null 2>&1
 then
 :
 else
 if /usr/bin/nc -vv -z -w 10 ${server_ip} ${server_port} > /dev/null 2>&1
 then
 :
 else
 echo "${date},服务器${server_ip},端口${server_port}无法访问" >> /data/monitor/server.log
 mail -s "${date},服务器${server_ip},端口${server_port}无法访问" 13036110648@139.com < /data/monitor/server.log
 fi
 fi
 i=$((i+1))
 done
 亿恩科技地址(ADD):郑州市黄河路129号天一大厦608室 邮编(ZIP):450008 传真(FAX):0371-60123888联系:亿恩小凡
 QQ:89317007
 电话:0371-63322206
 本文出自:亿恩科技【www.enkj.com】
 
 
		服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM] |