In Linux systems, we often need to monitor and adjust system resources to ensure the normal operation and efficient use of the system. Using the top command is one of the most common system monitoring methods, but in actual operation, the interactive interface of the top command is not convenient, especially when the system running load is high, the real-time refresh of the top command will Bring additional system burden. This article will introduce a more efficient and easier system monitoring tool in Linux batch mode - the top command in batch mode.
The top command is used to display real-time processing activities in a Linux system, as well as kernel-managed tasks. It will show CPU and memory usage and other information such as running programs. You can take advantage of script mode options to transfer top command output to other applications or files.
How to use Top command script mode
In Centos8, we execute the commands in this article. The following command sorts the data by CPU usage and prints the first 20 rows specified in the command.
[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 USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 176848 10824 8116 S 0.0 0.6 0:04.50 /usr/lib/systemd/s ystemd --switch+ 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 [kthreadd] 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [rcu_gp] 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [rcu_par_gp] 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [kworker/0:0H-kblockd] 9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [mm_percpu_wq] 10 root 20 0 0 0 0 S 0.0 0.0 0:00.70 [ksoftirqd/0] 11 root 20 0 0 0 0 I 0.0 0.0 0:02.64 [rcu_sched] 12 root rt 0 0 0 0 S 0.0 0.0 0:00.00 [migration/0] 13 root rt 0 0 0 0 S 0.0 0.0 0:00.45 [watchdog/0] 14 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [cpuhp/0] 16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kdevtmpfs] 17 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 [netns]
If you want to sort by memory usage, you need to use the following command:
[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 USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 22531 root 20 0 615344 75672 25780 S 0.0 4.1 0:00.80 node /usr/ local/bin/evilscan 192.+ 968 root 20 0 413544 35488 34188 S 0.0 1.9 0:02.32 /usr/libexec/sss d/sssd_nss --uid + 971 root 20 0 462996 34880 14700 S 0.0 1.9 0:00.65 /usr/libexec/plat form-python -s /+ 997 root 20 0 612436 28888 14600 S 0.0 1.6 0:35.22 /usr/libexec/platfo rm-python -Es + 948 polkitd 20 0 1772752 23756 16596 S 0.0 1.3 0:00.30 /usr/lib/polkit-1/p olkitd --no-de+ 980 root 20 0 753768 18484 15908 S 0.0 1.0 0:05.09 /usr/sbin/NetworkMan ager --no-dae+ 813 root 20 0 118756 14588 13040 S 0.0 0.8 0:04.79 /usr/lib/systemd/sys temd-journald 966 root 20 0 402088 12008 9900 S 0.0 0.7 0:01.93 /usr/libexec/sssd/ss sd_be --domai+ 950 root 20 0 395652 11736 10132 S 0.0 0.6 0:00.34 /usr/sbin/sssd -i --logger=files 1 root 20 0 176848 10824 8116 S 0.0 0.6 0:04.50 /usr/lib/systemd/s ystemd --switch+ 6620 root 20 0 152796 10216 8992 S 0.0 0.6 0:00.01 sshd: root [priv] 840 root 20 0 115684 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 --user
The options used by the top
command in the above command are explained as follows:
-b
: Run script mode-c
: Display the full path of the command in the COMMAND column-n
: Specifies the maximum number of iterations that top should produce before ending. -o
: Defines which field to sort by. In batch mode, use the top command to arrange the data according to the usage time of the process. It shows the total amount of CPU time consumed by the process since it was started. Use the following command to view:
[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 USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 997 root 20 0 612436 28888 14600 S 0.0 1.6 0:35.24 /usr/libexec /platform-python -Es + 946 root 20 0 160120 6460 5656 S 0.0 0.4 0:06.08 /sbin/rngd -f 980 root 20 0 753768 18484 15908 S 0.0 1.0 0:05.10 /usr/sbin/Netw orkManager --no-dae+ 813 root 20 0 118756 14588 13040 S 0.0 0.8 0:04.79 /usr/lib/systemd /systemd-journald 1 root 20 0 176848 10824 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 [xfsaild/dm-0] 11 root 20 0 0 0 0 I 0.0 0.0 0:02.65 [rcu_sched] 968 root 20 0 413544 35488 34188 S 0.0 1.9 0:02.32 /usr/libexec/sss d/sssd_nss --uid + 966 root 20 0 402088 12008 9900 S 0.0 0.7 0:01.93 /usr/libexec/ss sd/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 39 19 0 0 0 S 0.0 0.0 0:01.13 [khugepaged] 10 root 20 0 0 0 0 S 0.0 0.0 0:00.79 [ksoftirqd/0]
The output results of top can be saved to a file as follows:
[root@localhost ~]# top -bc | head -30 > top-information.txt
Summarize
The top command is used to display real-time processing activities in a Linux system, as well as kernel-managed tasks. It will show CPU and memory usage and other information such as running programs. You can take advantage of script mode options to transfer top command output to other applications or files.
Through the introduction of this article, we can see that using the top command in batch mode in Linux systems can monitor system resources more efficiently and avoid the burden of interactive interfaces. We can switch to batch mode by setting the -b parameter of the top command. We can also use other parameters to customize the output results, set the refresh interval, etc. We believe that in this way, we can monitor and adjust the system more easily and efficiently, and improve the operating efficiency of the system.
The above is the detailed content of Efficient and easy, a powerful tool for system monitoring in Linux batch mode. For more information, please follow other related articles on the PHP Chinese website!