1. 程式人生 > >linux shell指令碼給郵箱發磁碟cpu記憶體資訊

linux shell指令碼給郵箱發磁碟cpu記憶體資訊

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刪除) 在這裡插入圖片描述