crontab -l
*/1 * * * * /home/gdyh/cpu_memory_monitor.sh 2>/dev/null # 每分钟执行,出错数据就不要
1 6 * * * /home/gdyh/cpu_busy_memory_avg.sh 2>/dev/null #早上6点执行,出错数据就不要
cat cpu_busy_memory_avg.sh
#!/bin/bash
cd /home/gdyh/
#if [[ -f cpu_monitor.log ]]; then
# rm -rf cpu_monitor.log
#fi
days_ago=`date -d '1 days ago' "+%Y-%m-%d"` #前一天的日期
#days=`date "+%Y-%m-%d"` #日期格式:年-月-日
lines=`sort cpu_monitor.log | uniq | grep "$days_ago" | wc -l `
#echo "lines=$lines"
all_busy=`grep "$days_ago" cpu_monitor.log | awk -F'|' '{print $2}' | awk '{sum=sum+$1;} END{print sum}' ` #以" | "作为分隔符
#计算第2列的总和并输出
all_busy_avg=`awk 'BEGIN{printf"%.2f\n",'$all_busy'/'$lines'}' ` #输出格式为小数点后两位
all_user_free=`grep "$days_ago" cpu_monitor.log | awk -F'|' '{print $3}' | awk '{sum=sum+$1;} END{print sum}'`
all_user_free_avg=`awk 'BEGIN{printf"%.2f\n",'$all_user_free'/'$lines'}'`
#echo "$days_ago""|""$all_busy_avg""|""$all_user_free_avg"
echo "$days_ago""|""$all_busy_avg""|""$all_user_free_avg" >> cpu_busy_memory_avg.log #追加内容到文件去
exit 0
cat cpu_memory_monitor.sh
#!/bin/bash
cd /home/gdyh/
#if [[ -f cpu_monitor.log ]]; then
# rm -rf cpu_monitor.log
#fi
times=2
logtime=`date +"%Y-%m-%d %H:%M:%S"` #时间格式为:年-月-日 时:分:秒
sum=`top -b -n $times | grep "Cpu" | cut -d "%" -f 4 | awk -F',' '{print $2}' | awk '{sum=sum+$1;} END{print sum} '`
idle_avg=`awk 'BEGIN{printf"%.2f\n",'$sum'/'$times'}'`
busy_avg=`awk 'BEGIN{printf"%.2f\n",'100'-'$idle_avg'}'`
user=`free | grep "buffers/cache" | awk '{print $3}'`
total=`free | grep -i "mem" | awk '{print $2}'`
user_avg=`awk 'BEGIN{printf"%.2f\n",'$user'/'$total'*'100'}'`
#echo "$logtime""|""$busy_avg""|""$user_avg"
echo "$logtime""|""$busy_avg""|""$user_avg" >> cpu_monitor.log
exit 0
#### end ###
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29874114/viewspace-1651146/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29874114/viewspace-1651146/