cpu运行状态监控脚本
2012-07-27 19:19
417 查看
watchCpu.sh
==========
#!/bin/bash
sleepTime=60
logfile=cpu_yjk.log
if [ -f "$logfile" ];
then
rm cpu_yjk.log
fi
exec 1>$logfile
processName="watchCpu.sh"
title="load"
coretitle=`mpstat | grep -o -e '%.*'`
#print title
printf "%s," `date +%Y-%m-%d_%H:%M:%S`
printf "%6s," $title
printf "%12s(ave/max/min/mdev)," $coretitle
printf "%12s(ave/max/min/mdev)," $processName
printf "\n"
while true
do
load=`uptime | awk -F: '{print $NF}'|awk -F, '{print $1}'`
corevalue=`mpstat -P ALL|grep -v -i ALL|grep -o -e '[0-9][0-9]*\..*\.[0-9]*[0-9]$'|awk -v col=9 -f cal.awk`
processValue=`ps aux |grep $processName|grep -v grep|awk '{print $3}'|awk -v col=1 -f cal.awk`
#print value
printf "%s," `date +%Y-%m-%d_%H:%M:%S`
printf "%6.2f," $load
printf "%30s," $corevalue
printf "%30s," $processValue
printf "\n"
sleep $sleepTime
done
=============================================================================
cal.awk
========
BEGIN {
for(i=1;i<=col;i++){
sum[i] = 0;
squsum[i] = 0;
max[i] = 0;
min[i] = 1000000;
}
}
{
for(j=1;j<=col;j++) {
tmp = $j
sum[j] += tmp
squsum[j] += tmp*tmp
if(max[j]<tmp)
max[j] = tmp
if(min[j]>tmp)
min[j] = tmp
}
}
END {
for(k=1;k<=col;k++) {
ave = sum[k]/NR
mdev = sqrt(squsum[k]/NR-ave*ave)
printf("%.2f/%.2f/%.2f/%.2f "), ave,max[k],min[k],mdev
}
}
==========================================================================
output.log
=========
2012-07-27_18:45:23, load, %user(ave/max/min/mdev), %nice(ave/max/min/mdev), %sys(ave/max/min/mdev), %iowait(ave/max/min/mdev), %irq(ave/max/min/mdev), %soft(ave/max/min/mdev), %steal(ave/max/min/mdev), %idle(ave/max/min/mdev),
intr/s(ave/max/min/mdev), watchCpu.sh(ave/max/min/mdev),
2012-07-27_18:45:23, 0.02, 21.11/23.12/20.07/0.94, 0.00/0.00/0.00/0.00, 2.46/2.67/2.32/0.10, 0.42/1.99/0.05/0.63, 0.04/0.19/0.00/0.07, 1.93/2.26/1.47/0.27, 0.00/0.00/0.00/0.00, 73.89/74.95/72.18/0.76,
297.39/1208.74/35.19/442.41, 0.00/0.00/0.00/0.00,
2012-07-27_18:46:23, 0.15, 21.11/23.12/20.07/0.94, 0.00/0.00/0.00/0.00, 2.46/2.67/2.32/0.10, 0.42/1.99/0.05/0.63, 0.04/0.19/0.00/0.07, 1.93/2.26/1.47/0.27, 0.00/0.00/0.00/0.00, 73.89/74.95/72.18/0.76,
297.38/1208.68/35.19/442.39, 0.00/0.00/0.00/0.00,
2012-07-27_18:47:23, 0.41, 21.11/23.12/20.07/0.94, 0.00/0.00/0.00/0.00, 2.46/2.67/2.32/0.10, 0.42/1.99/0.05/0.63, 0.04/0.19/0.00/0.07, 1.93/2.26/1.47/0.27, 0.00/0.00/0.00/0.00, 73.89/74.95/72.18/0.76,
297.37/1208.62/35.19/442.37, 0.00/0.00/0.00/0.00,
2012-07-27_18:48:23, 0.15, 21.11/23.12/20.07/0.94, 0.00/0.00/0.00/0.00, 2.46/2.67/2.32/0.10, 0.42/1.99/0.05/0.63, 0.04/0.19/0.00/0.07, 1.93/2.26/1.47/0.27, 0.00/0.00/0.00/0.00, 73.89/74.95/72.18/0.76,
297.35/1208.56/35.19/442.35, 0.00/0.00/0.00/0.00,
2012-07-27_18:49:23, 0.14, 21.11/23.12/20.07/0.94, 0.00/0.00/0.00/0.00, 2.46/2.67/2.32/0.10, 0.42/1.99/0.05/0.63, 0.04/0.19/0.00/0.07, 1.93/2.26/1.47/0.27, 0.00/0.00/0.00/0.00, 73.89/74.95/72.18/0.76,
297.34/1208.50/35.19/442.32, 0.00/0.00/0.00/0.00,
2012-07-27_18:50:23, 0.10, 21.11/23.11/20.06/0.94, 0.00/0.00/0.00/0.00, 2.46/2.67/2.32/0.10, 0.42/1.99/0.05/0.63, 0.04/0.19/0.00/0.07, 1.93/2.26/1.47/0.27, 0.00/0.00/0.00/0.00, 73.89/74.95/72.18/0.76,
297.33/1208.45/35.19/442.31, 0.00/0.00/0.00/0.00,
==========
#!/bin/bash
sleepTime=60
logfile=cpu_yjk.log
if [ -f "$logfile" ];
then
rm cpu_yjk.log
fi
exec 1>$logfile
processName="watchCpu.sh"
title="load"
coretitle=`mpstat | grep -o -e '%.*'`
#print title
printf "%s," `date +%Y-%m-%d_%H:%M:%S`
printf "%6s," $title
printf "%12s(ave/max/min/mdev)," $coretitle
printf "%12s(ave/max/min/mdev)," $processName
printf "\n"
while true
do
load=`uptime | awk -F: '{print $NF}'|awk -F, '{print $1}'`
corevalue=`mpstat -P ALL|grep -v -i ALL|grep -o -e '[0-9][0-9]*\..*\.[0-9]*[0-9]$'|awk -v col=9 -f cal.awk`
processValue=`ps aux |grep $processName|grep -v grep|awk '{print $3}'|awk -v col=1 -f cal.awk`
#print value
printf "%s," `date +%Y-%m-%d_%H:%M:%S`
printf "%6.2f," $load
printf "%30s," $corevalue
printf "%30s," $processValue
printf "\n"
sleep $sleepTime
done
=============================================================================
cal.awk
========
BEGIN {
for(i=1;i<=col;i++){
sum[i] = 0;
squsum[i] = 0;
max[i] = 0;
min[i] = 1000000;
}
}
{
for(j=1;j<=col;j++) {
tmp = $j
sum[j] += tmp
squsum[j] += tmp*tmp
if(max[j]<tmp)
max[j] = tmp
if(min[j]>tmp)
min[j] = tmp
}
}
END {
for(k=1;k<=col;k++) {
ave = sum[k]/NR
mdev = sqrt(squsum[k]/NR-ave*ave)
printf("%.2f/%.2f/%.2f/%.2f "), ave,max[k],min[k],mdev
}
}
==========================================================================
output.log
=========
2012-07-27_18:45:23, load, %user(ave/max/min/mdev), %nice(ave/max/min/mdev), %sys(ave/max/min/mdev), %iowait(ave/max/min/mdev), %irq(ave/max/min/mdev), %soft(ave/max/min/mdev), %steal(ave/max/min/mdev), %idle(ave/max/min/mdev),
intr/s(ave/max/min/mdev), watchCpu.sh(ave/max/min/mdev),
2012-07-27_18:45:23, 0.02, 21.11/23.12/20.07/0.94, 0.00/0.00/0.00/0.00, 2.46/2.67/2.32/0.10, 0.42/1.99/0.05/0.63, 0.04/0.19/0.00/0.07, 1.93/2.26/1.47/0.27, 0.00/0.00/0.00/0.00, 73.89/74.95/72.18/0.76,
297.39/1208.74/35.19/442.41, 0.00/0.00/0.00/0.00,
2012-07-27_18:46:23, 0.15, 21.11/23.12/20.07/0.94, 0.00/0.00/0.00/0.00, 2.46/2.67/2.32/0.10, 0.42/1.99/0.05/0.63, 0.04/0.19/0.00/0.07, 1.93/2.26/1.47/0.27, 0.00/0.00/0.00/0.00, 73.89/74.95/72.18/0.76,
297.38/1208.68/35.19/442.39, 0.00/0.00/0.00/0.00,
2012-07-27_18:47:23, 0.41, 21.11/23.12/20.07/0.94, 0.00/0.00/0.00/0.00, 2.46/2.67/2.32/0.10, 0.42/1.99/0.05/0.63, 0.04/0.19/0.00/0.07, 1.93/2.26/1.47/0.27, 0.00/0.00/0.00/0.00, 73.89/74.95/72.18/0.76,
297.37/1208.62/35.19/442.37, 0.00/0.00/0.00/0.00,
2012-07-27_18:48:23, 0.15, 21.11/23.12/20.07/0.94, 0.00/0.00/0.00/0.00, 2.46/2.67/2.32/0.10, 0.42/1.99/0.05/0.63, 0.04/0.19/0.00/0.07, 1.93/2.26/1.47/0.27, 0.00/0.00/0.00/0.00, 73.89/74.95/72.18/0.76,
297.35/1208.56/35.19/442.35, 0.00/0.00/0.00/0.00,
2012-07-27_18:49:23, 0.14, 21.11/23.12/20.07/0.94, 0.00/0.00/0.00/0.00, 2.46/2.67/2.32/0.10, 0.42/1.99/0.05/0.63, 0.04/0.19/0.00/0.07, 1.93/2.26/1.47/0.27, 0.00/0.00/0.00/0.00, 73.89/74.95/72.18/0.76,
297.34/1208.50/35.19/442.32, 0.00/0.00/0.00/0.00,
2012-07-27_18:50:23, 0.10, 21.11/23.11/20.06/0.94, 0.00/0.00/0.00/0.00, 2.46/2.67/2.32/0.10, 0.42/1.99/0.05/0.63, 0.04/0.19/0.00/0.07, 1.93/2.26/1.47/0.27, 0.00/0.00/0.00/0.00, 73.89/74.95/72.18/0.76,
297.33/1208.45/35.19/442.31, 0.00/0.00/0.00/0.00,
相关文章推荐
- 制作定时任务,监控Tomcat是否处于启动如果不是启动状态,运行脚本启动tomcat。
- 监控进程(二进制程序)运行状态的C语言实现与脚本实现
- Nagios监控mfs运行状态插件脚本
- 写一个脚本用来监控服务的运行状态并能够重启服务
- shell脚本监控tomcat服务运行状态,服务关闭后进行重启
- Linux服务器硬件运行状态及故障邮件提醒的监控脚本分享
- 监控MYSQL主从同步配置中监控从库运行状态的脚本
- Linux用shell脚本监控网站运行状态并发告警邮件
- 使用shell脚本监控网站运行状态
- Linux服务器硬件运行状态及故障邮件提醒的监控脚本分享
- PowerShell脚本远程获取多台服务器系统状态(CPU、内存、运行服务)
- 主从同步,监控从库运行状态脚本
- 用Semisynchronous Replication半同步,mk-table-checksum数据同步一致性检查,监控主从同步运行状态的脚本等方式加强SQL性能和数据审核
- Shell脚本实现监控iptables运行状态
- Windows监控进程服务器IIS进程状态解决CPU暴满造成服务器运行缓慢 Python版
- 写了一个简单的shell脚本监控mysql服务器运行状态
- 监控HP服务器cpu状态脚本
- Shell脚本实现监控iptables运行状态
- 监控MYSQL主从同步配置中监控从库运行状态的脚本
- 运行监控系统脚本