top -b -n 1 |awk 'NR<=10 {print }' | awk 'NR>=8 {print}' |awk '$9>=1 {print" cpu" "\t" $9"\t"" mem" "\t" $10 "\t" $12 }'
命令解释
top 实时显示进程的信息
top - b : 批处理模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到文件内
top -n : 更新的次数,完成后将会退出 top
awk 数据处理工具
命令格式为 awk '条件1 {操作1} 条件2 操作{2} ...' filename
NR 是操作第几行,NR==9就是操作第9行,NR<=10就是操作前9行。
print 打印
$9 是 第9列 这里是Cpu那一列
$9>=1 是第9列值>=1,也是说CPU的值>=1 # 可以任意自定义 >5
"cpu" 是字符串cpu 自己定义的,可以给为任意
扩展
输入到log里就是
top -b -n 1 |awk 'NR<=10 {print }' | awk 'NR>=8 {print}' |awk '$9>=1 {print" cpu" "\t" $9"\t"" mem" "\t" $10 "\t" $12 }' >>log
扩展2
如何持续监控某个进程到日志里?https://blog.csdn.net/weixin_46222091/article/details/104392595
参考资料:
《鸟哥的linux私房菜(第4版)》11.4.2 awk:好用的数据处理工具
《鸟哥的linux私房菜(第4版)》在线书籍网址 :https://linux.vbird.org/linux_basic/centos7/0330regularex.php
菜鸟教程 top命令 :https://www.runoob.com/linux/linux-comm-top.html