Системный администратор Linux: от эникейщика к Systems Engineer. Стек, траблшутинг и собеседование
Фундаментальный гайд по профессии системного администратора Linux: архитектура systemd, сети TCP/IP, траблшутинг нехватки inodes, права доступа и вопросы технических собеседований.
Профессия системного администратора пережила кардинальную трансформацию. Времена «эникейщиков», переустанавливающих Windows и обжимающих витую пару, ушли в прошлое. Современный Linux-администратор (Systems Engineer / SRE) управляет парком из сотен серверов, автоматизирует рутину на Bash и Python, настраивает сложные сетевые политики и ищет «плавающие» проблемы производительности ядра.
В этой статье мы разберем карту развития Linux-администратора и 5 практических задач на траблшутинг, которые дают на собеседованиях.
Навыки современного Linux-инженера#
| Направление | Что нужно знать | Базовые инструменты |
|---|---|---|
| Системный уровень | Инициализация ОС, systemd, сигналы процессов, архитектура VFS (Virtual File System) | systemctl, journalctl, strace, lsof |
| Сетевой стек | Маршрутизация, фаерволы, трансляция адресов (NAT), стек TCP/IP, DNS | ip, ss, iptables/nftables, tcpdump, dig |
| Автоматизация | Скрипты автоматизации, управление конфигурацией | Bash, Python, Ansible |
| Хранилища и RAID | Логические тома (LVM), программные RAID (mdadm), файловые системы (ext4, XFS, ZFS) | fdisk, lsblk, lvcreate, zpool |
Дорожная карта (Roadmap) обучения#
Пошаговый план развития системного администратора Linux
Командная строка и скрипты на Bash
3-4 неделиНавигация по FHS, потоки ввода-вывода (STDIN/STDOUT/STDERR), пайплайны, утилиты обработки текста (sed, awk, grep) и написание скриптов автоматизации.
Ядро, файловые системы и архитектура systemd
1-2 месяцаПрава доступа (chmod, SUID, ACL), управление процессами, написание юнитов systemd (.service, .timer), диагностика и сбор логов через journald.
Компьютерные сети и маршрутизация
1-2 месяцаСтек TCP/IP, модель OSI, адресация IPv4/IPv6, протоколы DNS/DHCP, фильтрация пакетов через iptables/nftables и анализ дампа сети через tcpdump.
Диагностика производительности и траблшутинг
3-4 неделиПоиск узких мест (CPU, Memory, Disk I/O, Network), анализ системных вызовов через strace, работа с файловыми дескрипторами lsof.
Безопасность и управление конфигурацией
1 месяцХарденинг SSH, настройка fail2ban, политики безопасности SELinux/AppArmor, автоматизация настройки через Ansible.
Топ-5 вопросов и задач на траблшутинг с собеседований#
1. df -h показывает 100% заполнение диска, но du -sh /* не находит больших файлов. В чем причина?#
Один из самых популярных практических кейсов на собеседованиях.
Причина: Процесс удерживает открытый файловый дескриптор удаленного файла.
Когда администратор выполняет rm /var/log/nginx/access.log, имя файла удаляется из директории (ссылка на inode исчезает). Но если процесс Nginx продолжает писать в этот файл, место на диске не освобождается, пока процесс не закроет дескриптор. Утилита du ищет файлы по дереву директорий и не видит его, а df опрашивает суперблок файловой системы.
Как найти и исправить:
# 1. Найти процессы, удерживающие удаленные файлы:
lsof | grep deleted
# 2. Мягко перезагрузить процесс или переоткрыть дескрипторы логов:
systemctl reload nginx
2. На диске есть свободное место, но файлы не создаются: No space left on device#
Причина: Закончились свободные дескрипторы файлов — inodes (индексные дескрипторы).
Файловая система (например, ext4) при форматировании создает фиксированное число inodes. Если в системе появилось огромное количество микро-файлов (например, миллионы мелких сессий PHP или застрявшая очередь почтового сервера Postfix), все inodes исчерпываются, хотя гигабайты памяти остаются свободными.
# Проверить количество свободных inodes:
df -i
3. Чем символическая ссылка (Symlink) отличается от жесткой (Hardlink)?#
| Критерий | Жесткая ссылка (Hard link) | Символическая ссылка (Symlink) |
|---|---|---|
| Что представляет собой | Дополнительное имя, указывающее на тот же самый номер inode | Отдельный файл со своим inode, содержащий путь к целевому файлу |
| Работа между разными дисками | ❌ Нельзя создать на другую файловую систему / раздел | ✅ Работает сквозь любые точки монтирования |
| Ссылки на каталоги | ❌ Запрещено (во избежание циклических петель) | ✅ Разрешено |
| Что будет при удалении оригинала | Данные остаются доступны по жесткой ссылке | Ссылка становится «битой» (Dangling symlink) |
4. Что происходит при включении сервера Linux? (Процесс загрузки)#
- BIOS / UEFI: Выполняет самотестирование оборудования (POST), инициализирует память и находит загрузочное устройство.
- Загрузчик (GRUB2): Загружает в оперативную память образ ядра Linux (
vmlinuz) и временный образ корневой файловой системыinitramfs(содержащий базовые драйверы дисков). - Ядро Linux (Kernel): Инициализирует драйверы, монтирует реальный корневой раздел в режиме только для чтения (
ro) и запускает первый процесс пользователей — PID 1 (/sbin/initилиsystemd). systemd: Запускает целевой таргет по умолчанию (обычноmulti-user.targetдля серверов илиgraphical.target), параллельно поднимая сервисы, сеть и генераторы монтирования (fstab).
5. Пинг до сервера идет (ping 8.8.8.8), но сайты не открываются (curl https://google.com висит). Как искать проблему?#
Классический чек-лист сетевого инженера:
- Проверить DNS резолвинг: Если
ping 8.8.8.8работает, а доменные имена не преобразуются в IP — проблема в DNS. Проверяем файл/etc/resolv.confи тестируем черезdig @1.1.1.1 google.com. - Проверить TCP-порт: ICMP (протокол пинга) работает на сетевом уровне L3, а HTTP/HTTPS — поверх TCP на портах 80/443. Проверяем доступность порта через
nc -zv google.com 443илиcurl -v. - Проверить фаервол: Проверяем правила блокировки исходящего трафика (
iptables -L -n -vилиnft list ruleset).
Резюме#
Системный администратор — это главный защитник стабильности инфраструктуры. Глубокое понимание Linux, сетей и умение хладнокровно диагностировать инциденты открывают прямой путь в DevOps и Site Reliability Engineering (SRE).
Прокачивай IT-скиллы с Capycodio
Не зубри теорию часами перед компьютером. Короткие 3-минутные интерактивные сессии прямо с телефона: по дороге, за кофе или перед сном.
Мы создаем интерактивный мобильный тренажер для разработчиков. Короткие сессии по 3-5 минут, чтобы держать базу и закрывать пробелы перед собеседованиями.