使用 Shell 脚本监控主机,实现主机性能监控
一、编写脚本程序,组织好各种代码
二、验证脚本执行效果、邮件发送效果
三、结合计划任务,实现主机性能自动监控
一、编写脚本程序,组织好各种代码
[root@localhost ~]# cd /mnt/ [root@localhost mnt]# vim sysmon.sh #!/bin/bash #提取性能监控指标(磁盘占用、CPU使用、内存使用) DUG=$(df -h | grep "/$" | awk '{print $5}' | awk -F% '{print $1}') CUG=$(expr 100 - $(mpstat | tail -1 | awk '{print $12}' | awk -F. '{print $1}')) MUG=$(expr $(free | grep "Mem:" | awk '{print $3}') \* 100 / $(free | grep "Mem:" | awk '{print $2}')) #设置告警日志文件、告警邮箱 ALOG="/mnt/www.txt" # 日志文件的变量 AMAIL="root" # 发送到邮箱的变量 #判断是否记录告警 if [ $DUG -gt 80 ] then echo "磁盘占用率:$DUG %" >> $ALOG fi if [ $CUG -gt 70 ] then echo "CPU使用率:$CUG %" >> $ALOG fi if [ $MUG -gt 80 ] then echo "内存使用率:$MUG %" >> $ALOG fi #判断是否发送告警邮件,最后删除告警日志文件 if [ -f $ALOG ] then cat $ALOG | mail -s "Host Alert" $AMAIL rm -rf $ALOG fi
二、验证脚本执行效果、邮件发送效果
[root@localhost ~]# cd /mnt/ [root@localhost mnt]# ls sysmon.sh [root@localhost mnt]# sh sysmon.sh [root@localhost mnt]# cat /var/spool/mail/root | tail -20
三、结合计划任务,实现主机性能自动监控
[root@localhost ~]# systemctl status crond #查看计划任务是否在运行状态 [root@localhost ~]# crontab -e #编写计划任务 */30 * * * * /usr/bin/sh /mnt/sysmon.sh #每半个小时执行一次 [root@localhost ~]# crontab -l #查看计划任务