其实一般企业都是用zabbix来监控的,不过这里我自己写了个shell定时执行shell脚本通过crontab记录下来监控io直接上传shell脚本。#!/bin/bashdate=`date-dtoday+%Y%m%d`#判断是否有目录if[!-d"$HOME/sunshine"]thenmkdir"$HOME/sunshine"fi#判断是否存在Fileif[!-f"$HOME/sunshine/$date.log"]然后touch"$HOME/sunshine/$date.log"fi#functionhandlefunctionmonitor(){#获取函数参数iowait_val=$1#CPU:psaux|grep-vPID|排序-nr-k+3|头#MEM:psaux|grep-vPID|排序-nr-k+4|headtime_now=`date-dtoday+%H:%M:%S`echo-e"==========$time_now=======IO:$iowait_val=======\n">>$HOME/sunshine/$date.logecho-e"--------CPU------------\n">>$HOME/sunshine/$date.log$(psaux|grep-vPID|sort-nr-k+3|head>>$HOME/sunshine/$date.log)echo-e"\n--------MEM----------\n">>$HOME/sunshine/$date.log$(psaux|grep-vPID|sort-nr-k+4|head>>$HOME/sunshine/$date.log)#不要使用这种方式,即使加上-e也会造成数据格式混乱#echo$content>$HOME/sunshine/$date.log}#提取iowait值iowait_val=$(iostat-c|grep-vavg|grep'[^/s]'|grep-vLi|awk'{print$4}')#将浮点数处理成整数val=$(echo"scale=0;$iowait_val/1"|bc)#比较大小if[$val-ge15]thenecho"iowaitis"$iowait_valmonitor$iowait_valfi
