SA對于服務器的監(jiān)控是很必要的,但是如果管理的服務器很多,也不可能24小時在線監(jiān)控。
本文的主要內(nèi)容就是實現(xiàn),服務器如果出現(xiàn)異常,會通過短信方式,直接把服務器當前狀況發(fā)送到管理員手機,SA可以第一時間知道服務器發(fā)生異常,從而以最快的時間予以處理。
原理很簡單,中國移動提供139.com這樣的郵箱,如果有郵件到達,會同時發(fā)送郵件標題到管理員對應手機,郵箱名是 你的手機號@139.com,例如:13036110648@139.com,當此郵箱接收到郵件時,會同時給13036110648這個手機發(fā)送郵件到達信息,郵箱注冊地址http://mail.139.com/
在實現(xiàn)下面功能之前,請務必先注冊好郵箱(此功能現(xiàn)在移動免費提供)
下面我們來實現(xiàn)一些功能:
監(jiān)控用戶登錄
我們知道用戶一般登錄的時候都會加載登錄腳本 ~/.bashrc,那么我們可以在這個腳本里面加入:
#echo 'at now + 1 minutes -f /data/checklogin.sh > /dev/null 2>&1' >> ~/.bashrc
那么此用戶登錄的時候就會在1分鐘之后,執(zhí)行/data/checklogin.sh這個腳本(為什么要在一分鐘之后,因為如果是自己登陸,就不需要發(fā)送短信,給自己時間來用atrm 取消此任務計劃),此腳本內(nèi)容如下
#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了,那么每次這個用戶登錄的時候,就會把當前的已登錄用戶信息以短信方式發(fā)送到管理員手機號
當然你也可以監(jiān)控所有用戶登錄,那么就應該修改/etc/bashrc這個登錄腳本
監(jiān)控服務運行狀態(tài)
#!/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
聯(lián)系:億恩小凡
QQ:89317007
電話:0371-63322206 本文出自:億恩科技【mszdt.com】
服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|