使用shell 實現檢查內存大小,如果在設置的值內就顯示,否則就發郵件報警
先配置發郵件
vi /etc/mail.rc
添加如下信息
# For Linux and BSD, this should be set. set bsdcompat set [email protected] smtp=smtp.163.com set smtp-auth-user=alvin smtp-auth-password=123456 smtp-auth=login
#注意:[email protected] 是你的郵箱賬號,alvin 是你的郵箱用戶名,123456 是你們郵箱密碼
以下是內存超標郵箱報警腳本:
[root@mysql script]# cat check_memory.sh #!/bin/bash FreeMem=`free -m|awk 'NR==3 {print $NF}'` CHARS="Current Memory is $FreeMem." CHARS1="Memory Alert" if [ $FreeMem -lt 1800 ] then echo $CHARS >/tmp/messages.txt mail -s "`date +%F-%T`$CHARS1" [email protected] </tmp/messages.txt else echo $CHARS fi
爲了能報警發郵件,我這裏設置的比較大(1800)實際生產環境設置不用設置這麼大。
此腳本爲了演示,可以把echo $CHARS 刪除,加入定時任務,每3分鐘執行一次。
*/3 * * * * /bin/sh /server/script/check_memory.sh &>/dev/null