Эксплуатация Linux
Большинство инцидентов на проде — это не экзотика, а типовые симптомы одной и той же ОС: закончилось место, съедена память, завис процесс, не поднимается сервис, разъехались часы. DevOps-инженера ценят не за знание редких флагов, а за то, что под нагрузкой инцидента он бьёт точную команду и понимает, что она показывает.
Эта большая тема — карта повседневного администрирования: от того, где что лежит и как читать диск и память, через управление процессами и сервисами (systemd, cron), до сети, времени и безопасности (права, PAM, файрвол, MAC). Ключевые ловушки названы прямо в слоях — du против df, SIGTERM против SIGKILL, VIRT против RES, временный ip addr add против постоянного конфига.
Карта темы
- Устройство файловой системы и inode — где лежат логи и конфиги и что на самом деле хранит inode.
- Использование диска —
duпротивdf, поиск крупных директорий и расхождение из-за удалённого открытого файла. - LVM — слои PV/VG/LV и зачем нужна абстракция хранения.
- Осмотр памяти —
free -h, колонкиRES/VIRT/SHRи разницаfreeиavailable. - Swap и OOM — подкачка на диск,
swapon/swapoffи OOM-killer. - Сигналы процессам —
SIGTERMпротивSIGKILLи правильный порядок остановки. - systemd — init-система, PID 1 и управление сервисами через
systemctl. - cron — планировщик задач и гейт доступа
cron.allow/cron.deny. - Репозитории пакетов — где настраиваются источники APT/yum и как поднять свой.
- Настройка сети — добавление IP и как пережить перезагрузку.
- Синхронизация времени — NTP,
chrony/ntpdиtimedatectl. - Права и sudo —
/etc/sudoers,visudoи sticky bit. - PAM — подключаемая аутентификация и стек модулей.
- Средства безопасности — файрвол (
iptables/firewalld) иMAC(SELinux/AppArmor).
Частые ошибки и ловушки
| Ошибка | Последствие |
|---|---|
Путать du (место файлов) и df (свободное на ФС) | Диагностируете не то; расхождение из-за удалённого открытого файла остаётся непонятым |
Ранжировать процессы по VIRT, а не RES | Завышенная оценка памяти — виртуальное пространство в основном не подкреплено |
Бить kill -9 первым | Нет корректной очистки — потерянные или битые данные |
Считать, что ip addr add переживёт перезагрузку | Адрес пропадает после ребута — нет постоянного конфига |
| Думать, что inode хранит имя файла | Имя лежит в записи каталога, а не в inode |
| Считать sticky bit защитой «только чтение» | На деле он ограничивает удаление, а не запись |
| Считать SELinux/AppArmor файрволом | Это MAC (ограничение процесса), а не фильтр пакетов |
Править /etc/sudoers без visudo | Синтаксическая ошибка блокирует sudo целиком |
Значение для собеседований
Тема проверяет, можно ли пустить кандидата на прод без няньки. Интервьюер даёт короткие практические сценарии — «диск полон», «память кончилась», «сервис не стартует» — и слушает, называете ли вы точную команду и понимаете ли, что за ней стоит. Разница между «kill -9 всё чиним» и «сначала SIGTERM, SIGKILL — для зависших» сразу видна.
Что обычно проверяют:
- Диск и память —
du/df,free,RESпротивVIRT, расхождениеdu/df. - Процессы и сервисы — сигналы,
systemd/PID 1,systemctl restart/enable. - Конфигурация и безопасность — постоянный vs временный сетевой конфиг,
sudoers,PAM, файрвол противMAC.
Типичный неверный ответ: «чтобы освободить место, надо удалить большие файлы» или «ip addr add сохраняется сам». За такими ответами обычно стоит отсутствие практики на живых серверах — именно это тема и вскрывает.