linux shell脚本给邮箱发磁盘cpu内存信息

1首先下载mailx和 mailx sendmail

yum -y install mailx
yum -y install mailx sendmail

2选择自己接收的邮箱 比如QQ邮箱

在设置里按步骤开启IMAP/SMTP服务
linux shell脚本给邮箱发磁盘cpu内存信息
第三步需要邮箱验证 请耐心弄完 你会获得授权码
linux shell脚本给邮箱发磁盘cpu内存信息

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%就发
linux shell脚本给邮箱发磁盘cpu内存信息
执行结果如下 邮箱也会收到(不想显示就把脚本中的echo删除)
linux shell脚本给邮箱发磁盘cpu内存信息