Мы имеем дело с 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.