系统监控脚本
在/root/bin目录下编写脚本,监控系统中内存、cpu、磁盘的占用率;赋予脚本文件执行权限,执行脚本检查效果;设置计划任务每分钟执行一次脚本。
sysmon.sh
#!/bin/bash
#by lxl
#memory_used_rate 内存使用率
LoadMemory=$(cat /proc/meminfo | awk '{print $2}')
Total=$(echo $LoadMemory | awk '{print $1}')
Free1=$(echo $LoadMemory | awk '{print $2}')
Free2=$(echo $LoadMemory | awk '{print $3}')
Free3=$(echo $LoadMemory | awk '{print $4}')
Used=`expr $Total - $Free1 - $Free2 - $Free3`
Used_Rate=`expr $Used/$Total*100 | bc -l`
Memory_Used_Rate=`expr $Used_Rate/1 | bc`
#disk_used_rate 磁盘占用率
Location=/dev/sda1
Disk_Used_Rate=$(df -h | grep $Location | awk '{print $5}')
#cpu_used_rate cpu使用率
Log=$(cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}')
Free=$(echo $Log | awk '{print $4}')
Total=$(echo $Log | awk '{print $1+$2+$3+$4+$5+$6+$7}')
Cpu_Used=`expr $Total - $Free`
Cpu_Used_Rate=`expr $Cpu_Used/$Total*100 |bc -l`
#mail to root
if [ $Memory_Used_Rate -gt 10 ]
then echo "内存使用率:$Memory_Used_Rate%" |mail -s "内存告警" root
fi
echo -e "----------------------------------------"
echo -e "内存使用率:"$Memory_Used_Rate%
echo -e "磁盘占用率:"$Disk_Used_Rate
echo -e "cpu使用率:"$Cpu_Used_Rate%
echo -e "----------------------------------------"
echo -e " "
其中分为四部分
1、内存使用率
LoadMemory=$(cat /proc/meminfo | awk '{print $2}')
Total=$(echo $LoadMemory | awk '{print $1}')
Free1=$(echo $LoadMemory | awk '{print $2}')
Free2=$(echo $LoadMemory | awk '{print $3}')
Free3=$(echo $LoadMemory | awk '{print $4}')
Used=`expr $Total - $Free1 - $Free2 - $Free3`
Used_Rate=`expr $Used/$Total*100 | bc -l`
Memory_Used_Rate=`expr $Used_Rate/1 | bc`
bc命令解释:
bc 命令是任意精度计算器语言,通常在linux下当计算器用。
yum install -y bc
2、磁盘占用率
Location=/dev/sda1
Disk_Used_Rate=$(df -h | grep $Location | awk '{print $5}')
3、cpu使用率
Log=$(cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}')
Free=$(echo $Log | awk '{print $4}')
Total=$(echo $Log | awk '{print $1+$2+$3+$4+$5+$6+$7}')
Cpu_Used=`expr $Total - $Free`
Cpu_Used_Rate=`expr $Cpu_Used/$Total*100 |bc -l`
4、邮件发送
if [ $Memory_Used_Rate -gt 10 ]
then echo "内存使用率:$Memory_Used_Rate%" |mail -s "内存告警" root
fi
yum install -y mailx
设置每分钟执行一次
crontab -e
写入 */1 * * * * /root/bin/sysmon.sh
使用crontab -l 查看
查看收到的邮件: