Home  >  Article  >  System Tutorial  >  Efficient and easy, a powerful tool for system monitoring in Linux batch mode

Efficient and easy, a powerful tool for system monitoring in Linux batch mode

王林
王林forward
2024-02-13 17:00:13953browse

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]

Efficient and easy, a powerful tool for system monitoring in Linux batch mode
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

Efficient and easy, a powerful tool for system monitoring in Linux batch mode
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]

Efficient and easy, a powerful tool for system monitoring in Linux batch mode
The output results of top can be saved to a file as follows:

[root@localhost ~]# top -bc | head -30 > top-information.txt
Efficient and easy, a powerful tool for system monitoring in Linux batch mode

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!

Statement:
This article is reproduced at:lxlinux.net. If there is any infringement, please contact admin@php.cn delete