How to monitor Linux server status

How to monitor Linux server status

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 proceed smoothly.

The several commands introduced in this article are not only suitable for server monitoring, but also for our daily development.

1. watch

The watch command is used 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 achieve the purpose of monitoring the server.

By default, the watch command executes every 2 seconds, but we can use the -n option to specify the frequency. For example, if we want to execute the date command every 5 seconds, we can do this:

$ watch -n 5 date

One server must be used by many people, especially the colleagues in the department. To see if these friends are taking advantage of the situation, we can use some commands to monitor them.

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 view the average system load.

$ 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 fail, otherwise it may affect business operations, 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

To dynamically know the server memory usage, you can execute the free command repeatedly.

$ 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 call many commands repeatedly to monitor some key parameters of the server.

2. top

Using the top command we can know many key parameters of the system, and they are updated dynamically. 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, while still being able to see the key parameters of the entire system.

3. ac

If you want to know the time taken by each user logged into the server, you can use the ac command. This command requires you to install acct package (Debian) or psacct package (RHEL, Centos).

If we want to know the total time taken by all users to log in to 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 add the -d option to view the total server time used by users on each day.

$ 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

summary

We can use many commands to monitor the running status of the system. This article mainly introduces three commands: the watch command allows you to repeatedly execute a command to monitor the changes of some parameters, the top command can view the number of processes run by a user and the resources consumed, and the ac command can view the server time used by each user.

This is the end of this article on how to monitor the Linux server status. For more information about Linux server status, please search 123WORDPRESS.COM’s previous articles or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • How to view the status of remote server files in Linux
  • Detailed explanation of Linux server status and performance related commands
  • Sharing of monitoring scripts for Linux server hardware operation status and fault email notifications
  • Share a piece of PHP code to get the status of the Linux server

<<:  Vue uses Baidu Maps to realize city positioning

>>:  How to use union all in MySQL to get the union sort

Recommend

Solution to Nginx SSL certificate configuration error

1. Introduction When a web project is published o...

MyBatis dynamic SQL comprehensive explanation

Table of contents Preface Dynamic SQL 1. Take a l...

An example of using Lvs+Nginx cluster to build a high-concurrency architecture

Table of contents 1. Lvs Introduction 2. Lvs load...

Tomcat server security settings method

Tomcat is an HTTP server that is the official ref...

Detailed explanation of several ways to export data in Mysql

There are many purposes for exporting MySQL data,...

HTML scroll bar textarea attribute setting

1. Overflow content overflow settings (set whether...

Web standards learning to understand the separation of structure and presentation

When discussing Web standards, one thing that alwa...

Comparative Analysis of UI Applications of Image Social Networking Sites (Figure)

In our life, work and study, social networks have ...

The difference between Div and table in HTML (discussed in detail in all aspects)

1: Differences in speed and loading methods The di...

How to install SVN server under Linux

1. Yum installation yum install subversion 2. Con...

Native js implements shopping cart logic and functions

This article example shares the specific code of ...

Some tips for using less in Vue projects

Table of contents Preface 1. Style penetration 1....

Linux kernel device driver address mapping notes

#include <asm/io.h> #define ioremap(cookie,...