We deal with Linux servers every day, especially Linux engineers. In order to ensure the security and performance of the server, we often need to monitor some status of the server to ensure that the work can be carried out smoothly.
The commands introduced in this article are not only suitable for server monitoring, but also for development in our daily situations.
The watch command is used very frequently. Its basic function is to repeatedly execute a certain instruction at a specified frequency. Using this command, we can repeatedly call some commands to monitor the server.
By default, the execution period of the watch command is 2 seconds, but we can use the -n
option to specify the running frequency. For example, if we want to execute the date command every 5 seconds, we can Execute like this:
$ watch -n 5 date
A server must be used by multiple people, especially friends in this department. We can use some commands to monitor whether these friends are fishing in troubled waters.
We can execute the who command every 10 seconds to see who is using the server.
$ watch -n 10 who Every 10.0s: who butterfly: Tue Jan 23 16:02:03 2019 shs :0 2019-01-23 09:45 (:0) dory pts/0 2019-01-23 15:50 (192.168.0.5) alvin pts/1 2019-01-23 16:01 (192.168.0.15) shark pts/3 2019-01-23 11:11 (192.168.0.27)
If we find that the system is running very slowly, we can call the uptime command to check the average load of the system.
$ watch uptime Every 2.0s: uptime butterfly: Tue Jan 23 16:25:48 2019 16:25:48 up 22 days, 4:38, 3 users, load average: 1.15, 0.89, 1.02
Some key processes must not hang, otherwise it may affect business development, so we can repeatedly count the number of all processes in the server.
$ watch -n 5 'ps -ef | wc -l' Every 5.0s: ps -ef | wc -l butterfly: Tue Jan 23 16:11:54 2019 245
If you want to dynamically know the server memory usage, you can repeatedly execute the free command.
$ watch -n 5 free -m Every 5.0s: free -m butterfly: Tue Jan 23 16:34:09 2019 total used free shared buff/cache available Mem: 5959 776 3276 12 1906 4878 Swap: 2047 0 2047
Of course it’s not just these, we can also repeatedly call many commands to monitor some key parameters of the server,
Using the top command we can know Many key parameters of the system are dynamically updated. By default, top monitors the overall status of the system. If we only want to know the usage of a certain person, we can use the -u
option to specify this person.
$ top -u alvin top - 16:14:33 up 2 days, 4:27, 3 users, load average: 0.00, 0.01, 0.02 Tasks: 199 total, 1 running, 198 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.2 sy, 0.0 ni, 99.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 5959.4 total, 3277.3 free, 776.4 used, 1905.8 buff/cache MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 4878.4 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 23026 alvin 20 0 46340 7820 6504 S 0.0 0.1 0:00.05 systemd 23033 alvin 20 0 149660 3140 72 S 0.0 0.1 0:00.00 (sd-pam) 23125 alvin 20 0 63396 5100 4092 S 0.0 0.1 0:00.00 sshd 23128 alvin 20 0 16836 5636 4284 S 0.0 0.1 0:00.03 zsh
In this result, you can not only see the number of all processes run by the user alvin, but also the system resources (CPU, memory) consumed by each process. You can also see to key parameters of the entire system.
If you want to know the time it takes for each user to log in to the server, you can use the ac command. This command requires you to install the acct
package (Debian) or the psacct
package (RHEL, Centos).
If we want to know the sum of the time spent by all users logging into the server, we can run the ac command directly without any parameters.
$ ac total 1261.72
If we want to know the time used by each user, we can add the -p
option.
$ ac -p shark 5.24 alvin 5.52 shs 1251.00 total 1261.76
We can also view the sum of server time used by users each day by adding the -d
option.
$ ac -d | tail -10 Jan 11 total 0.05 Jan 12 total 1.36 Jan 13 total 16.39 Jan 15 total 55.33 Jan 16 total 38.02 Jan 17 total 28.51 Jan 19 total 48.66 Jan 20 total 1.37 Jan 22 total 23.48 Today total 9.83
We can use many commands to monitor the running status of the system. This article mainly introduces three: watch The command allows you to repeatedly execute a certain command. Monitor changes in some parameters. The top command can view the number of processes running by a user and the resources consumed, while the ac command can view the server time used by each user. Which command do you often use? Welcome to leave a message for discussion!
For more Linux articles, please visit the Linux Tutorial column to learn!
The above is the detailed content of How to monitor Linux server status. For more information, please follow other related articles on the PHP Chinese website!