shell脚本监控系统负载、CPU和内存使用情况

2019-09-23 09:32:22王冬梅


3、编写cpu监控的脚本文件:

# vim /scripts/cpu-check.sh

#!/bin/bash 
#使用top命令监控linux系统cpu变化 
 
#取系统当前时间(以追加的方式写入文件>>) 
date >> /scripts/datetime-cpu.txt    
 
#抓取当前cpu的值(以追加的方式写入文件>>) 
top -b -n 1 | grep Cpu  >> /scripts/cpu-now.txt  
 
#逐行连接上面的时间和cpu相关行数据(每次重新写入文件>) 
paste  /scripts/datetime-cpu.txt   /scripts/cpu-now.txt  > /scripts/cpu.txt
# chmod a+x /scripts/cpu-check.sh

4、查看CPU监控的结果文件:

# cat /scripts/cpu.txt

5、编写cpu结果文件邮件发送脚本:

# vim /scripts/sendmail-cpu.sh
#!/bin/bash 
#把生成的cpu.txt文件通过邮件发送给用户 
 
#提取本服务器的IP地址信息 
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "` 
 
#提取当前日期
today=`date -d "0 day" +%Y年%m月%d日` 
 
#发送cpu监控结果邮件 
echo "这是$IP服务器$today的cpu监控报告,请下载附件。" | mutt -s "$IP服务器$today的CPU监控报告" -a /scripts/cpu.txt  fuquanjun@xxx.com
 # chmod a+x /scripts/sendmail-cpu.sh
 

四、监控系统cpu的情况,当使用超过80%的时候发告警邮件:


# vim /scripts/cpu-warning.sh
#!/bin/bash 
#监控系统cpu的情况脚本程序 
 
#提取本服务器的IP地址信息 
IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "` 
 
#取当前空闲cpu百份比值(只取整数部分) 
cpu_idle=`top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."` 
 
#设置空闲cpu的告警值为20%,如果当前cpu使用超过80%(即剩余小于20%),立即发邮件告警 
if (($cpu_idle < 20)); then 
      echo "$IP服务器cpu剩余$cpu_idle%,使用率已经超过80%,请及时处理。" | mutt -s "$IP 服务器CPU告警"  fuquanjun@xxx.com 
fi
# chmod a+x /scripts/cpu-warning.sh

五、使用free命令监控系统内存:

1、使用free命令查看linux系统内存使用情况:(以M为单位)

# free -m 
             total       used       free     shared    buffers     cached
Mem:          3952       3414        538          0        168        484