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删除)