Linux 学习-Shell筛选top前五行信息

一般的巡检需要查看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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容