1. 程式人生 > >Linux指令碼編寫程式監控系統資訊並設定報警自動傳送郵件

Linux指令碼編寫程式監控系統資訊並設定報警自動傳送郵件

yum -y install mailx
yum -y install  sendmail  
#獲取cpu使用率
cpuUsage=`top -n 1 | awk -F '[ %]+' 'NR==3 {print $3}'`
#獲取磁碟使用率
data_name="/dev/sda1"
diskUsage=`df -h | grep $data_name | awk -F '[ %]+' '{print $5}'`
logFile=/tmp/jiankong.log   #需要建檔案
#獲取記憶體情況
mem_total=`free -m | awk -F '[ :]+' 'NR==2{print $2}'`
mem_used=`free -m | awk -F '[ :]+' 'NR==2{print $3}'`
#統計記憶體使用率
mem_used_persent=`awk 'BEGIN{printf "%.0f\n",('$mem_used'/'$mem_total')*100}'`
#獲取報警時間
now_time=`date '+%F %T'`
function send_mail(){
        mail -s "監控報警"   
[email protected]
< /tmp/jiankong.log } function check(){ #為了驗證 將數改小一點. if [[ "$cpuUsage" > 80 ]] || [[ "$diskUsage" > 80 ]] || [[ "$mem_used_persent" > 80 ]];then echo "報警時間:${now_time}" > $logFile echo "CPU使用率:${cpuUsage}% --> 磁碟使用率:${diskUsage}% --> 記憶體使用率:${mem_used_persent}%" >> $logFile send_mail fi } function main(){ check } main

問題一:

首先發送郵件要對qq郵箱設定->賬戶->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務->IMAP/SMTP服務 設定為 開啟 得到一個授權碼,問題二會用到

問題二:

編輯檔案
vim /etc/mail.rc
隨意位置新增
set from=qq號碼@qq.com

set smtp=smtp.qq.com

set smtp-auth-user=qq號碼@qq.com

set smtp-auth-password=授權碼

set smtp-auth=login

問題三:

如果不能傳送 可以試下是否能傳送成功 echo a | mailx -v -s “1”

[email protected]