Команды для диагностики Linux

Материал из darklurker wiki
Перейти к: навигация, поиск

Сеть

ifconfig <eth0>      //информация о интерфейсе
ip a                 //адресация интерфейсов
ss                   //посмотреть сокеты
iptables -Ln          //отобразить все цепочки правил iptables-services'
ping <host>          //не требует комментариев
traceroute <host>    //трасса до хоста
mtr <host>           //статистика трассировки
route                //таблица маршрутизации
dig <example.com>    //информация о DNS-записях домена
nc -vn <host> 22          //проверка открытого tcp-порта 22
nc -vnzu <host> 5550      //проверка открытого udp-порта 5550
nmap -Pn <host>         //сканирование всех портов на хосте (не злоупотреблять)
netstat                    //статистика сети
-r                         //таблица маршрутизации
-n                         //без разрешения IP адресов в имена и сетевых портов в названия
-a                         //состояние всех (во всех состояниях) соединений на локальной машине
-t                         //статистика по протоколу TCP
-u                         //статистика по протоколу UDP
-i                         //отобразить статистику сетевых интерфейсов
-l                         //просмотр сокетов, слушающих (LISTEN) соединения (ожидающих соединения)
-p                         //отобразить имя программы и PID (process ID), с которой взаимодействует сокет
sudo netstat -tulpn        //пример просмотра всех прослушиваемых портов с именами демонов/пакетов
sudo journalctl -u systemd-resolved --since -48hour > systemd-resolved.log     //логи резолва DNS в файл
sudo journalctl -u dhclient --since -48hour                                    //просмотр логов по dhcp-клиенту за последние 48 часов
sudo journalctl -u network --since -48hour                                     //просмотр логов по network-демону за последние 48 часов
journalctl -b | grep dhclient                                             //почти аналог, только с использованием grep. Ключ -b для отображения с момента последнего запуска
sudo tcpdump -ni <interface> udp and port 53 -w dump -v           //запись в файл дампа по 53 udp порту
sudo tcpdump -ni <interface> dst host 8.8.8.8                     //захват пакетов НА хост 8.8.8.8, заменить dst на src, если необходимо захватить пакеты ОТ хоста
sudo tcpdump host 8.8.8.8 and icmp                                //захват ICMP пакетов для определенного хоста

Несколько примеров tcpdump

ssh -vvv user@host                    //если не удается подключиться по ssh, добавление -vvv лучший способ понять причины
sudo journalctl -u sshd                    //просмотр логов ssh-сервера (на сервере офк)


Дисковая система

hdparm -t /dev/sda               //измерение скорости чтения диска
ioping /dev/sda -c 10            //просмотр latency
iostat -x                        //использование диска
iotop         //аналог top, только для дисков
-o                  //отображать только процессы, которые в данный момент выполняют операции I/O с диском
-b                  //отключить интерактивный режим (например — для логгирования);
-n                  //задать число выполнения проверок перед выходом;
-d                  //интервал (секунды) между проверками;
-p                  //PID процесса, который надо отслеживать;
-u                  //имя пользователя, которого надо отслеживать;
-P                  //отображать только процессы (по-умолчанию — все процессы и потоки);
-k                  //отображать инфомрацию в KB;
-t                  //добавить отображение времени выполнения проверки;
-q (-qq, -qqq)      //уменьшить количество выводимой информации.

lsblk                 //просмотреть смонтированные точки
df -h --total         //просмотр объема 
du -a /home | sort -n -r | head -n 5        //просмотр больших файлов и каталогов в директории /homе
du -hs * | sort -rh | head -5               //размеры в удобном формате
du -Sh | sort -rh | head -5                 //большие файлы и каталоги, включая подкаталоги


badblocks -s /dev/sda            //проверка на BAD блоки
smartctl -A /dev/sda             //S.M.A.R.T. состояние диска

Использование CPU и Memory

top -o %CPU             //просмотр активных процессов, сортированных по времени использования процессора
htop                    //чуть более расширенный и удобный мониторинг, чем top, процессорное время, оперативная память и тд
pidstat                                                     //список процессов с использованием ресурсов и pid
sudo ps -aux                                                //список всех запущенных процессов
sudo ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head      //найти процессы использующие макс. кол-во памяти
sudo ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head      //то же, но процессорного времени
dstat --output dstat-$(date +%s).log -f 1 120.          //просмотр процессов в реальном времени с интервалом для записи
mpstat                                                  //почти то же, что и dstat
free -h                 //просмотр использования оперативной памяти
vmstat                  //тоже просмотр использования RAM
sudo slabtop            //вывод использования RAM по аналогу с top

Логи для общей диагностики

journalctl -b                         //просмотр событий с момента последней загрузки
journalctl -b | grep <keyword>        //просмотр событий с фильтром по ключевому слову
sudo journalctl -u <service>               //просмотр событий по конкретному сервису
dmesg -T                  //просмотр системных сообщений с отметкой времени

Пользователи и группы

last      //последние входы/выходы пользователей
lastb     //неудачные попытки входа в систему
w         //авторизованные (оналайн) пользователи
whoami    //текущий пользователь, под которым вы авторизованы
id <who>    //просмотр информации о принадлежности группы/пользователе