一般的巡检需要查看cpu的使用率以及swap空间的使用率(当然如果系统并没有使用可以忽略)
现在的操作是将top前五行的信息写入一个临时的文件:
# top -b -n 8 | grep 'top -' -A 5 > /tmp/top_temp.txt
注:-n是获取8次top的信息,-A是获取搜索到'top -'开始的后五行
扩展:对top信息进行提取,只获取cpu,内存,swap的占有率
#! /bin/bash
# $1:指定存储获取信息文件完整路径和文件名
filename=$1
now=1
for i in `top -b -d 0.5 -n 2 | grep '%Cpu' -A 3 `
do
if [ "$now" -eq 42 ]
then
cpuus=$i
echo "cpuus $i"
elif [ "$now" -eq 48 ]
then
cpuid=$(printf "%.5f" `echo "scale=3;100-$i"|bc`)
echo "cpuid $cpuid"
elif [ "$now" -eq 61 ]
then
memall=$i
echo "memall $i"
elif [ "$now" -eq 65 ]
then
memused=$(expr $i \* 100)
echo "menused $i"
elif [ "$now" -eq 71 ]
then
swapall=$i
echo "swapall $i"
elif [ "$now" -eq 75 ]
then
swapused=$(expr $i \* 100)
echo "swapused $swapused"
fi
now=$(expr $now + 1)
done
memusedp=$(printf "%.5f" `echo "scale=3;$memused/$memall"|bc`)
swapusedp=$(printf "%.5f" `echo "scale=3;$swapused/$swapall"|bc`)
echo -e "$cpuus\t$cpuid\t$memusedp\t$swapusedp">> $filename
echo -e "$cpuus\t$cpuid\t$memusedp\t$swapusedp"
1.png