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

top 命令用于显示 Linux 系统中的实时处理活动,以及内核管理的任务。它将显示 CPU 和内存使用情况及其他信息,例如正在运行的程序。可以利用脚本模式的选项将top命令输出传输到其他应用程序或文件。
使用 Top 命令脚本模式的方法
在 Centos8 中,我们执行本文中的命令。下面命令按照 CPU 使用率对数据进行排序,并打印命令中指定的前 20 行。
[root@localhost ~]# top -bc -n 1 | head -20
top - 22:23:02 up 6 days, 12:36, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 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 st
MiB Mem : 1792.0 total, 886.5 free, 277.0 used, 628.4 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1333.1 avail Mem

PID USERPRNIVIRTRESSHR S%CPU%MEMTIME+ COMMAND 1 root200176848108248116 S0.00.60:04.50 /usr/lib/systemd/systemd --switch+ 2 root200000 S0.00.00:00.01 [kthreadd] 3 root0 -20000 I0.00.00:00.00 [rcu_gp] 4 root0 -20000 I0.00.00:00.00 [rcu_par_gp] 6 root0 -20000 I0.00.00:00.00 [kworker/0:0H-kblockd] 9 root0 -20000 I0.00.00:00.00 [mm_percpu_wq] 10 root200000 S0.00.00:00.70 [ksoftirqd/0] 11 root200000 I0.00.00:02.64 [rcu_sched] 12 rootrt0000 S0.00.00:00.00 [migration/0] 13 rootrt0000 S0.00.00:00.45 [watchdog/0] 14 root200000 S0.00.00:00.00 [cpuhp/0] 16 root200000 S0.00.00:00.00 [kdevtmpfs] 17 root0 -20000 I0.00.00:00.00 [netns]

如何在 Linux 中以脚本模式运行 Top如何在 Linux 中以脚本模式运行 Top
如果要按照内存使用顺序排序,需要使用下面命令:
【如何在|如何在 Linux 中以脚本模式运行 Top】[root@localhost ~]# top -bc -o +%MEM -n 1 | head -n 20
top - 22:26:01 up 6 days, 12:39, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 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 st
MiB Mem : 1792.0 total, 834.6 free, 329.0 used, 628.4 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1281.2 avail Mem
PID USERPRNIVIRTRESSHR S%CPU%MEMTIME+ COMMAND

22531 root 20 0 615344 75672 25780 S 0.0 4.1 0:00.80 node /usr/local/bin/evilscan 192.+
968 root2004135443548834188 S0.01.90:02.32 /usr/libexec/sssd/sssd_nss --uid + 971 root2004629963488014700 S0.01.90:00.65 /usr/libexec/platform-python -s /+ 997 root2006124362888814600 S0.01.60:35.22 /usr/libexec/platform-python -Es + 948 polkitd200 17727522375616596 S0.01.30:00.30 /usr/lib/polkit-1/polkitd --no-de+ 980 root2007537681848415908 S0.01.00:05.09 /usr/sbin/NetworkManager --no-dae+ 813 root2001187561458813040 S0.00.80:04.79 /usr/lib/systemd/systemd-journald 966 root200402088120089900 S0.00.70:01.93 /usr/libexec/sssd/sssd_be --domai+ 950 root2003956521173610132 S0.00.60:00.34 /usr/sbin/sssd -i --logger=files 1 root200176848108248116 S0.00.60:04.50 /usr/lib/systemd/systemd --switch+

6620 root 20 0 152796 10216 8992 S 0.0 0.6 0:00.01 sshd: root [priv]
840 root20011568498767312 S0.00.50: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 --user
如何在 Linux 中以脚本模式运行 Top如何在 Linux 中以脚本模式运行 Top
上面命令中关于top命令使用的选项解释如下:
-b: 运行脚本模式
-c: 显示COMMAND列中命令的完整路径
-n: 指定top在结束之前应该产生的最大迭代数。
-o: 定义了按照哪个字段排序。
在批处理模式下,使用 top 命令根据进程的使用的时间排列数据。它显示进程自启动以来消耗的 CPU 时间总量。使用如下命令查看:
[root@localhost ~]# top -bc -o TIME+ -n 1 | head -n 20
top - 22:31:20 up 6 days, 12:44, 2 users, load average: 0.00, 0.04, 0.01
Tasks: 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 st
MiB Mem : 1792.0 total, 843.4 free, 320.1 used, 628.4 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 1290.0 avail Mem
PID USERPRNIVIRTRESSHR S%CPU%MEMTIME+ COMMAND 997 root2006124362888814600 S0.01.60:35.24 /usr/libexec/platform-python -Es + 946 root20016012064605656 S0.00.40:06.08 /sbin/rngd -f 980 root2007537681848415908 S0.01.00:05.10 /usr/sbin/NetworkManager --no-dae+ 813 root2001187561458813040 S0.00.80:04.79 /usr/lib/systemd/systemd-journald 1 root200176848108248116 S0.00.60:04.50 /usr/lib/systemd/systemd --switch+ 727 root200000 S0.00.00:02.77 [xfsaild/dm-0] 11 root200000 I0.00.00:02.65 [rcu_sched] 968 root2004135443548834188 S0.01.90:02.32 /usr/libexec/sssd/sssd_nss --uid + 966 root200402088120089900 S0.00.70:01.93 /usr/libexec/sssd/sssd_be --domai+ 954 chrony2002944426522400 S0.00.10:01.16 /usr/sbin/chronyd 945 dbus2007470458965096 S0.00.30:01.15 /usr/bin/dbus-daemon --system --a+ 24 root3919000 S0.00.00:01.13 [khugepaged] 10 root200000 S0.00.00:00.79 [ksoftirqd/0]

如何在 Linux 中以脚本模式运行 Top如何在 Linux 中以脚本模式运行 Top
下面可以将top的输出结果保存到文件中:
[root@localhost ~]# top -bc | head -30 > top-information.txt
如何在 Linux 中以脚本模式运行 Top如何在 Linux 中以脚本模式运行 Top
总结
top 命令用于显示 Linux 系统中的实时处理活动,以及内核管理的任务。它将显示 CPU 和内存使用情况及其他信息,例如正在运行的程序。可以利用脚本模式的选项将top命令输出传输到其他应用程序或文件。

    推荐阅读