linux shell指令碼給郵箱發磁碟cpu記憶體資訊
阿新 • • 發佈:2018-12-16
1首先下載mailx和 mailx sendmail
yum -y install mailx
yum -y install mailx sendmail
2選擇自己接收的郵箱 比如QQ郵箱
在設定裡按步驟開啟IMAP/SMTP服務 第三步需要郵箱驗證 請耐心弄完 你會獲得授權碼
3修改 etc/mail.rc檔案
在裡面新增上用自己的郵箱和授權碼
set [email protected]
set smtp=smtp.qq.com
set [email protected]
set smtp-auth-password=授權碼
set smtp-auth=login!]
4 編寫shell指令碼檔案(記得22行用自己郵箱)
#!/bin/bash #獲取cpu使用率 cpuUsage=`top -n 1 | awk -F '[ %]+' 'NR==3 {print $3}'` echo "獲取cpu使用率$cpuUsage" #獲取磁碟使用率 data_name="/dev/sda1" diskUsage=`df -h | grep $data_name | awk -F '[ %]+' '{print $5}'` logFile=/tmp/jiankong.log echo "獲取磁碟使用率$diskUsage" #獲取記憶體情況 mem_total=`free -m | awk -F '[ :]+' 'NR==2{print $2}'` echo "總記憶體$mem_total" mem_used=`free -m | awk -F '[ :]+' 'NR==2{print $3}'` echo "使用的記憶體$mem_used" #統計記憶體使用率 mem_used_persent=`awk 'BEGIN{printf "%.0f\n",('$mem_used'/'$mem_total')*100}'` echo "獲取記憶體使用率$mem_used_persent" #獲取報警時間 now_time=`date '+%F %T'` function send_mail(){ mail -s "郵件名"
[email protected] < /tmp/jiankong.log } function check(){ if [[ "$cpuUsage" > 1 ]] || [[ "$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
5執行shell指令碼檔案
注意 如果你設定的滿足CPU用了80%以上才傳送郵件 你怎麼執行也不會發送的 建議測試的時候 改成用了1%就發 執行結果如下 郵箱也會收到(不想顯示就把指令碼中的echo刪除)