LinuxProbe 发表于 2022-4-5 13:35:00

如何在 Linux 中以脚本模式运行 Top


top 命令用于显示 Linux 系统中的实时处理活动,以及内核管理的任务。它将显示 CPU 和内存使用情况及其他信息,例如正在运行的程序。可以利用脚本模式的选项将top命令输出传输到其他应用程序或文件。
使用 Top 命令脚本模式的方法
在 Centos8 中,我们执行本文中的命令。下面命令按照 CPU 使用率对数据进行排序,并打印命令中指定的前 20 行。# top -bc -n 1 | head -20top - 22:23:02 up 6 days, 12:36,2 users,load average: 0.00, 0.00, 0.00Tasks: 186 total,   2 running, 184 sleeping,   0 stopped,   0 zombie%Cpu(s):0.0 us,0.0 sy,0.0 ni,100.0 id,0.0 wa,0.0 hi,0.0 si,0.0 stMiB Mem :   1792.0 total,    886.5 free,    277.0 used,    628.4 buff/cacheMiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   1333.1 avail Mem   PID USER      PRNI    VIRT    RES    SHR S%CPU%MEM   TIME+ COMMAND      1 root      20   017684810824   8116 S   0.0   0.6   0:04.50 /usr/lib/systemd/systemd --switch+      2 root      20   0       0      0      0 S   0.0   0.0   0:00.01       3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00       4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00       6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00       9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00    10 root      20   0       0      0      0 S   0.0   0.0   0:00.70    11 root      20   0       0      0      0 I   0.0   0.0   0:02.64    12 root      rt   0       0      0      0 S   0.0   0.0   0:00.00    13 root      rt   0       0      0      0 S   0.0   0.0   0:00.45    14 root      20   0       0      0      0 S   0.0   0.0   0:00.00    16 root      20   0       0      0      0 S   0.0   0.0   0:00.00    17 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 https://www.linuxprobe.com/wp-content/uploads/2021/08/image1-6.png
如果要按照内存使用顺序排序,需要使用下面命令:# top -bc -o +%MEM -n 1 | head -n 20top - 22:26:01 up 6 days, 12:39,2 users,load average: 0.00, 0.00, 0.00Tasks: 187 total,   1 running, 186 sleeping,   0 stopped,   0 zombie%Cpu(s):5.9 us,5.9 sy,0.0 ni, 88.2 id,0.0 wa,0.0 hi,0.0 si,0.0 stMiB Mem :   1792.0 total,    834.6 free,    329.0 used,    628.4 buff/cacheMiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   1281.2 avail Mem   PID USER      PRNI    VIRT    RES    SHR S%CPU%MEM   TIME+ COMMAND22531 root      20   06153447567225780 S   0.0   4.1   0:00.80 node /usr/local/bin/evilscan 192.+    968 root      20   04135443548834188 S   0.0   1.9   0:02.32 /usr/libexec/sssd/sssd_nss --uid +    971 root      20   04629963488014700 S   0.0   1.9   0:00.65 /usr/libexec/platform-python -s /+    997 root      20   06124362888814600 S   0.0   1.6   0:35.22 /usr/libexec/platform-python -Es +    948 polkitd   20   0 17727522375616596 S   0.0   1.3   0:00.30 /usr/lib/polkit-1/polkitd --no-de+    980 root      20   07537681848415908 S   0.0   1.0   0:05.09 /usr/sbin/NetworkManager --no-dae+    813 root      20   01187561458813040 S   0.0   0.8   0:04.79 /usr/lib/systemd/systemd-journald    966 root      20   040208812008   9900 S   0.0   0.7   0:01.93 /usr/libexec/sssd/sssd_be --domai+    950 root      20   03956521173610132 S   0.0   0.6   0:00.34 /usr/sbin/sssd -i --logger=files      1 root      20   017684810824   8116 S   0.0   0.6   0:04.50 /usr/lib/systemd/systemd --switch+   6620 root      20   015279610216   8992 S   0.0   0.6   0:00.01 sshd: root     840 root      20   0115684   9876   7312 S   0.0   0.5   0:00.47 /usr/lib/systemd/systemd-udevd   6623 root      20   0   93708   9500   8112 S   0.0   0.5   0:00.04 /usr/lib/systemd/systemd --userhttps://www.linuxprobe.com/wp-content/uploads/2021/08/image2-6.png
上面命令中关于top命令使用的选项解释如下:
[*]-b: 运行脚本模式
[*]-c: 显示COMMAND列中命令的完整路径
[*]-n: 指定top在结束之前应该产生的最大迭代数。
[*]-o: 定义了按照哪个字段排序。
在批处理模式下,使用 top 命令根据进程的使用的时间排列数据。它显示进程自启动以来消耗的 CPU 时间总量。使用如下命令查看:# top -bc -o TIME+ -n 1 | head -n 20top - 22:31:20 up 6 days, 12:44,2 users,load average: 0.00, 0.04, 0.01Tasks: 187 total,   1 running, 186 sleeping,   0 stopped,   0 zombie%Cpu(s):0.0 us,0.0 sy,0.0 ni,100.0 id,0.0 wa,0.0 hi,0.0 si,0.0 stMiB Mem :   1792.0 total,    843.4 free,    320.1 used,    628.4 buff/cacheMiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   1290.0 avail Mem   PID USER      PRNI    VIRT    RES    SHR S%CPU%MEM   TIME+ COMMAND    997 root      20   06124362888814600 S   0.0   1.6   0:35.24 /usr/libexec/platform-python -Es +    946 root      20   0160120   6460   5656 S   0.0   0.4   0:06.08 /sbin/rngd -f    980 root      20   07537681848415908 S   0.0   1.0   0:05.10 /usr/sbin/NetworkManager --no-dae+    813 root      20   01187561458813040 S   0.0   0.8   0:04.79 /usr/lib/systemd/systemd-journald      1 root      20   017684810824   8116 S   0.0   0.6   0:04.50 /usr/lib/systemd/systemd --switch+    727 root      20   0       0      0      0 S   0.0   0.0   0:02.77    11 root      20   0       0      0      0 I   0.0   0.0   0:02.65     968 root      20   04135443548834188 S   0.0   1.9   0:02.32 /usr/libexec/sssd/sssd_nss --uid +    966 root      20   040208812008   9900 S   0.0   0.7   0:01.93 /usr/libexec/sssd/sssd_be --domai+    954 chrony    20   0   29444   2652   2400 S   0.0   0.1   0:01.16 /usr/sbin/chronyd    945 dbus      20   0   74704   5896   5096 S   0.0   0.3   0:01.15 /usr/bin/dbus-daemon --system --a+   24 root      3919       0      0      0 S   0.0   0.0   0:01.13    10 root      20   0       0      0      0 S   0.0   0.0   0:00.79 https://www.linuxprobe.com/wp-content/uploads/2021/08/image3-5.png
下面可以将top的输出结果保存到文件中:# top -bc | head -30 > top-information.txthttps://www.linuxprobe.com/wp-content/uploads/2021/08/image4-4.png总结
top 命令用于显示 Linux 系统中的实时处理活动,以及内核管理的任务。它将显示 CPU 和内存使用情况及其他信息,例如正在运行的程序。可以利用脚本模式的选项将top命令输出传输到其他应用程序或文件。www.pcpop.com/doc/4/4506/4506557.shtmlsite.qudong.com/2017/0220/394075.shtmlwww.ccidnet.com/2017/0703/10289040.shtml

文剿匪 发表于 2022-4-6 10:54:04

学习了
页: [1]
查看完整版本: 如何在 Linux 中以脚本模式运行 Top