在linux下监控cpu、内存、磁盘数据等信息,用shell脚本是最合适不过的了。 以下脚本用来测试CPU压力,接收一个参数为:CPU数量。
例如:
代码如下:
复制代码代码示例:
#!/bin/sh
# filename killcpu.sh for i in `seq $1` do echo -ne " i=0; while true do ii=i+1; done" | /bin/sh & pid_array[$i]=$! ; done for i in "${pid_array[@]}"; do echo 'kill ' $i ';'; done
调用示例,如下图:
以下是今天要介绍的主要脚本,监测服务器CPU、内存MEM、磁盘DISK数据。
复制代码代码示例:
#!/bin/bash
mem_quota=20
# watch cpu usage in one minute
report=/root/server_report.log
脚本说明:
# 服务器CPU/MEM/DISK监控脚本(server_moniter.sh)
#------------------------------------------------------------------ # 对服务器的CPU/MEM/DISK设定阈值,动态监控利用率,超过阈值发送邮件 # 或者短信告警 # # 本脚本通过调用watch_mem函数实现内存利用率监控,这里的内存利用率计算是进程实 # 际使用的内存,也就是used-buffer/cache,超过阈值发送息。 # # 通过调用watch_hd函数实现磁盘利用率监控,这里的磁盘利用率,我采用 # 一个一个磁盘或分区检索,这种方式对于磁盘或分区较多时,可能不太方 # 便,可以采用循环判断。 # # 通过调用wath_cpu函数实现CPU利用率监控,这里是通过在一分钟内2次采 # 集/proc/stat中的CPU数据,再对每1次采集点的数据中的使用CPU时间与空闲CPU时 # 间累加求和,最后将2次采集点运算结果求差,获得CPU在一分钟类# 使用时间利用率, # 这种计算方式比较准确,如果超过阈值发送消息。 # # 在每一个函数中设置一个判断返回值,如果超过阈值,条件为真则返回1,如果返回值 # 为1则 将告警消息附加到report中,最后如果report这个文件 # 存在,发送邮件通知管理员,将report做为邮件的正文。 # # 可以将这个脚本添加到定时任务,每隔10分种执行一次检查。 #------------------------------------------------------------------
加入定时任务:
复制代码代码示例:
10 * * * * /home/topgkw/server_moniter.sh
每10分钟调用一次本脚本。
总结: |