巧用linux-top的批处理模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了巧用linux-top的批处理模式相关的知识,希望对你有一定的参考价值。

IT技术学习:一种是采用循序渐进的系统式学习;一种是采用“投机取巧”的碎片式学习。我这个人比较赖,也没有那些大牛执着的精神和水平,所以只能和大家分享后者

top命令-是UNIN&&LINUX系统自带的系统管理工具。可以实时显示系统性能(负载、进程、运行时间)等多个指标。流行的网络教程是以交互式(实时)方式进行教学 ,实际上top还自带的强大的batch mode,来帮助你事半功倍。通常在
交互式模式,只需要在shell下直接运行top即可,如下
技术分享图片

实时模式好处是可以实时的观察系统状态,但是缺点也是明显

  1. 在不考虑使用第三方监控工具的情况下,如何记录和查看某项值的记录(历史的和当前的)
    比如我需要知道在某段时刻,系统运行了多少个tasks,难道需要盯着屏幕看吗?
  2. 如何将系统指标集合SHELL脚本来处理?首先结果需要输出。然后才能用你需要的逻辑调用进输入,处理完成后再输出
    这些其实都可以通过批处理模式来处理。

top-批处理模式在-SHELL下启动通过选项b来控制

  • -b : runs top in batch mode
    使用批处理模式后,最核心的就是可以导出内容
    我们来看第一个例子

导出一次的TOP输出

top -b -n 1 > top.txt
cat top.txt

你会惊奇的发现top的内容居然可以输出到file
技术分享图片

当然可以可以-n参数来连续获取快照

top -b -n 5 > top-5iterations.txt
cat top-5iterations.txt | grep Tasks

获取5次快照,然后过滤出tasks任务
技术分享图片

接下来,我们用crond(计划任务进程)来看一下进程的输出

$ pidof crond #获取pid
$ top -p 536 -b -n3 > cron.txt #输出
$ cat cron.txt

技术分享图片

最后我们来结合一个shell命令来连续获取进程情况,如下

for i in {1..8}; do sleep 2 && top -b -p 536 -n1 | tail -1 ; done >> cron.txt
cat cronta.txt

在实际效果中,为了让大家了解每列的含义,我显示了每列的头部字段名,如下
技术分享图片

我们也可以利用批处理模式对当前的进程内存使用情况进行一个排序

top -b -o +%CPU | head -n 22 #排列最占用CPU的进程

技术分享图片

本文只是抛砖引玉,具体使用,请大家积极开动脑筋
以上测试系统CENTOS7.2 其它LINUX发型版,请自行测试

以上是关于巧用linux-top的批处理模式的主要内容,如果未能解决你的问题,请参考以下文章

巧用 Spring 自动注入实现策略模式升级版

Linux-top指令输出后各个字段的含义

巧用Vscode编辑器,快速编辑代码,教你一键写完一段代码,向合格的cv工程师前进

巧用Vscode编辑器,快速编辑代码,教你一键写完一段代码,向合格的cv工程师前进

巧用Vscode编辑器,快速编辑代码,教你一键写完一段代码,向合格的cv工程师前进

巧用Vscode编辑器,快速编辑代码,教你一键写完一段代码,向合格的cv工程师前进