Как контролировать состояние сервера Linux?

Linux
Как контролировать состояние сервера Linux?

Мы имеем дело с Linux-серверами каждый день, особенно с Linux-инженерами. Чтобы обеспечить безопасность и производительность сервера, нам часто необходимо отслеживать состояние сервера, чтобы обеспечить бесперебойную работу.

В этой статье описывается несколько команд не только для мониторинга сервера, но и для разработки в наших повседневных ситуациях.

1. watch

Команда watch используется очень часто, ее основная функция заключается в повторении инструкции с заданной частотой. Используя эту команду, мы можем многократно вызывать некоторые команды для мониторинга сервера.

По умолчанию период выполнения команды watch составляет 2 секунды, но мы можем использовать-nпараметр, чтобы указать частоту выполнения.Например, если мы хотим выполнять команду даты каждые 5 секунд, мы можем выполнить ее следующим образом:

$ watch -n 5 date

Сервер должен использоваться многими людьми, особенно небольшими партнерами в этом отделе. Чтобы эти маленькие друзья ловили рыбу в мутной воде, мы можем использовать некоторые команды для наблюдения за ними.

Мы можем запускать команду who каждые 10 секунд, чтобы узнать, кто использует сервер.

$ 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)

Если обнаружено, что система работает медленно, мы можем вызвать команду uptime, чтобы просмотреть среднюю загрузку системы.

$ 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

Некоторые ключевые процессы нельзя приостанавливать, иначе это может повлиять на развитие бизнеса, поэтому мы можем повторно подсчитать количество всех процессов на сервере.

$ watch -n 5 'ps -ef | wc -l'
Every 5.0s: ps -ef | wc -l                   butterfly: Tue Jan 23 16:11:54 2019
​
245

Чтобы динамически узнать использование памяти сервера, вы можете повторно выполнить команду free.

$ 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

Конечно, не только это, мы также можем многократно вызывать множество команд для мониторинга некоторых ключевых параметров сервера,

2. top

С помощью команды top мы можем узнать многие ключевые параметры системы, которые динамически обновляются. По умолчанию top отслеживает общее состояние системы.Если мы хотим знать только об использовании определенного человека, мы можем использовать-uвозможность указать этого человека.

$ 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

В этом результате можно не только увидеть количество всех процессов, запущенных пользователем alvin, но и системные ресурсы (ЦП, память), потребляемые каждым процессом, и еще увидеть ключевые параметры всей системы.

3. ac

Если вы хотите узнать, сколько времени потребовалось каждому пользователю для входа на сервер, вы можете использовать команду ac. Эта команда требует, чтобы вы установилиacctпакет (Debian) илиpsacctПакет (RHEL, Centos).

Если мы хотим узнать сумму времени, затраченного всеми пользователями на вход на сервер, мы можем запустить команду ac напрямую без каких-либо параметров.

$ ac
        total     1261.72

Если мы хотим узнать время, использованное каждым пользователем, мы можем добавить-pопции.

$ ac -p
        shark                                5.24
        alvin                                5.52
        shs                               1251.00
        total     1261.76

Мы также можем добавить-dВозможность просмотра суммы серверного времени, использованного пользователями в определенный день.

$ 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

резюме

Мы можем использовать много команд для мониторинга текущего состояния системы. Эта статья в основном вводит три:watchкоманда позволяет многократно выполнять команду для отслеживания изменений некоторых параметров,topКоманда может просматривать количество запущенных процессов и ресурсы, потребляемые пользователем, а такжеacКоманда может просматривать время сервера, используемое каждым пользователем. Какую команду вы используете чаще всего? Добро пожаловать, чтобы оставить сообщение для обсуждения!

Кодировать слова непросто, если вы найдете это полезным, пожалуйста, поставьте лайк и уходите~

-----------------

Я Лян Сюй,Топ 500Иностранная компания Linux-разработчик, специализирующаяся на производстве Linux-галантереи.欢迎关注我的公众号「Хороший линукс",Ответить"1024"Получите самую свежую и полную техническую информацию, ответьте"вступить в группу«Войдите в экспертную группу по обмену технологиями Ruyun.