Linux指令碼編寫程式監控系統資訊並設定報警自動傳送郵件
阿新 • • 發佈:2018-12-16
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]