11 команд на Linux для работы в качестве системного администратора

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

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

1. lsof

Команда lsof может помочь вам найти все открытые файлы и процессы, а также кто их открыл. Утилита lsof может быть удобна для использования в некоторых сценариях.

К списку всех файлов, открытых по конкретному PID.

$ lsof –p PID

Подсчитать количество файлов и процессов

[root@localhost ~] $ lsof -p 4271 | wc -l
 34 
[root@localhost ~] $

Проверить текущий открытый файл журнала

 $ lsof –p | grep log

2. pidstat

pidstat может использоваться для мониторинга задач, управляемых ядром Linux. Устранение неполадок, связанных с вводом / выводом, может быть легко выполнено с этой командой.

Вывести статистику ввода / вывода для всех PID

$ pidstat –d

Если вы выполняете поиск и устранение неисправностей в реальном времени для какого-либо процесса, то вы можете контролировать ввод-вывод с интервалом. Ниже приведен пример для мониторинга каждые 5 секунд.

[root@localhost ~]$ pidstat -p 4362 -d 5

Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain) 08/13/2016 _x86_64_ (2 CPU) 

07:01:30 PM   UID       PID   kB_rd/s   kB_wr/s kB_ccwr/s Command

07:01:35 PM     0     4362     0.00     0.00     0.00 nginx

07:01:40 PM     0     4362     0.00     0.00     0.00 nginx

07:01:45 PM     0     4362     0.00     0.00     0.00 nginx

07:01:50 PM     0     4362     0.00     0.00     0.00 nginx

3. top

Вероятно, одна из наиболее часто используемых команд в Linux. Команда top используется для отображения сводной информации о системе и текущих процесов.

Простое выполнение команды top может показать вам загрузку процессора, детали процесса, количество задач, использование памяти и т.д.

linux top

Чтобы отобразить детали процесса для конкретного пользователя

$ top –u username

Чтобы остановить процесс, вы можете выполнить top и нажать . Вам будет предложено ввести PID процесса для его уничтожения.

linux top kill

4. ps

Команда ps отображает состояние процесса. Очень полезно узнать, запущен процесс или нет, и если он запущен, то печатает PID.

$ ps –ef | grep word

5. tcpdump

Устранение неполадок в сети всегда сопряжено с трудностями, и одной из важных команд, которую необходимо использовать, является tcpdump.

Вы можете использовать tcpdump для захвата сетевых пакетов на сетевом интерфейсе.

Для захвата пакетов на конкретном сетевом интерфейсе

$ tcpdump –i $ interface –w / tmp / capture

6. iostat

iostat отображает статистику ввода-вывода и часто используется для диагностики проблем с производительностью устройств хранения. С помощью iostat вы можете отслеживать отчет об использовании файловой системы CPU, Device & Network.

Показать статистику процессора

[root@localhost ~]$ iostat -c
Linux 3.10.0-327.13.1.el7.x86_64 (localhost.localdomain) 08/13/2016 _x86_64_  (2 CPU)
avg-cpu: %user   %nice %system %iowait %steal   %idle
           0.59   0.02   0.33   0.54   0.00   98.52
[root@localhost ~]$

7. ldd

ldd отображает список динамических зависимостей, необходимых для библиотеки. Команда ldd может быть полезна для диагностики проблемы запуска приложения.

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

[root@localhost sbin]$ ldd httpd
            linux-vdso.so.1 => (0x00007ffe7ebb2000)
            libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fa4d451e000)
            libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fa4d42f9000)
            libaprutil-1.so.0 => /lib64/libaprutil-1.so.0 (0x00007fa4d40cf000)
            libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fa4d3e98000)
            libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fa4d3c6e000)
            libdb-5.3.so => /lib64/libdb-5.3.so (0x00007fa4d38af000)
            libapr-1.so.0 => /lib64/libapr-1.so.0 (0x00007fa4d3680000)
            libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa4d3464000)
            libdl.so.2 => /lib64/libdl.so.2 (0x00007fa4d325f000)
            libc.so.6 => /lib64/libc.so.6 (0x00007fa4d2e9e000)
            liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fa4d2c79000)
            /lib64/ld-linux-x86-64.so.2 (0x00007fa4d4a10000)
            libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fa4d2a73000)
            libfreebl3.so => /lib64/libfreebl3.so (0x00007fa4d2870000)
[root@localhost sbin]$

8. netstat

netstat ( Network Statistics ) - популярная команда для показа сетевых подключений, статистики интерфейса и для устранения различных проблем, связанных с сетью.  

Показать статистику всех протоколов

$ netstat –s

9. free

Если на вашем сервере Linux не хватает памяти или вы просто хотите узнать, сколько памяти доступно, тогда команда free поможет вам в этом.

[root@localhost sbin]$ free -g
             total       used       free     shared buff/cache   available
Mem:             5           0           3           0           1           4
Swap:             5           0           5
[root@localhost sbin]$

10. sar

sar ( System Activity Report ) будет полезен для сбора ряда отчетов, включая ЦП, память и загрузку устройства.

Просто выполнив команду sar, вы увидите использование системы за весь день.

linux sar

11. ipcs

Команда ipcs выдает информацию об используемых в данный момент средствах межпроцессной связи.

Для отображения текущего статуса использования IPC

[root@localhost sbin]$ ipcs -u

------ Messages Status --------
allocated queues = 0
used headers = 0
used space = 0 bytes

------ Shared Memory Status --------
segments allocated 5
pages allocated 2784
pages resident 359
pages swapped   0
Swap performance: 0 attempts       0 successes

------ Semaphore Status --------
used arrays = 0
allocated semaphores = 0
[root@localhost sbin]$

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