Какие знаешь команды администратора в Linux?
Комментарии (2)
Ответ сгенерирован нейросетью и может содержать ошибки
Команды администратора Linux: от базового мониторинга до глубокой диагностики
Как опытный инженер DevOps, я разделяю команды не просто по названиям, а по операционным контекстам — мониторинг, диагностика, управление ресурсами, безопасность и автоматизация. В продакшене важно не только знать команду, но и понимать, когда и зачем ее применять.
🔍 Мониторинг системы и процессов
htop / top — интерактивные мониторы процессов. htop с цветным выводом и удобной навигацией предпочтительнее. Ключевые метрики: load average, потребление CPU/RAM per process.
htop -u nginx # мониторинг процессов конкретного пользователя
iotop / iftop** — анализ дискового и сетевого IO в реальном времени. Критичны для диагностики латентности.
iotop -oPa # показывать только активные процессы с накопленным IO
vmstat / mpstat** — низкоуровневая статистика по памяти, процессам, CPU. vmstat 2 10 выведет 10 срезов с интервалом 2 секунды — идеально для фиксации пиков.
🛠 Управление системой и службами
systemctl — универсальный инструмент управления systemd.
systemctl list-units --type=service --state=failed # поиск упавших сервисов
systemctl cat nginx.service # просмотр полного файла юнита (включая drop-in)
journalctl — централизованное логирование systemd. Фильтрация по времени, юниту, приоритету.
journalctl -u kubelet --since "1 hour ago" -p err # ошибки kubelet за час
rsync / scp** — копирование с прогрессом и резервированием. rsync -avz --partial незаменим для миграции больших данных.
📊 Анализ ресурсов и сетей
ss — замена устаревшему netstat. Значительно быстрее, детальнее.
ss -tlpn # все listen-порты с именами процессов
lsof — что открыто конкретным процессом или кто держит файл.
lsof +D /var/log # все открытые файлы в директории
lsof -i :443 # процессы на порту 443
ncdu — интерактивный анализ дискового пространства. Быстрее du, нагляднее.
🔧 Диагностика производительности
perf — профилирование ядра и приложений. Для поиска узких мест в CPU.
perf top -p <PID> # live-профилирование процесса
strace / ltrace** — трассировка системных и библиотечных вызовов. Для отладки "зависших" процессов.
strace -ff -o trace.log -p <PID> # трассировка всех потоков
tcpdump / tshark** — сниффинг трафика на уровне интерфейса.
tcpdump -i eth0 -w capture.pcap port 9092 # захват трафика Kafka
🛡 Безопасность и аудит
auditd — фреймворк аудита ядра. Отслеживание изменений критичных файлов.
auditctl -w /etc/passwd -p wa # мониторинг изменений passwd
fail2ban-client — управление блокировками атакующих IP.
chage — управление политиками паролей пользователей.
📈 DevOps-специфичные команды
kubectl / docker** — оркестрация контейнеров. Например:
kubectl top pod --containers # потребление ресурсов конкретными контейнерами
docker stats --no-stream # статистика всех контейнеров
ansible / terraform** — инфраструктура как код.
ansible-playbook -i inventory.yml site.yml --limit db_servers
terraform plan -var-file=prod.tfvars
jq / yq** — парсинг JSON/YAML в конвейерах.
kubectl get pods -o json | jq '.items[] | select(.status.phase=="Running")'
💡 Ключевые принципы использования
- Контекст важнее синтаксиса —
ssвместоnetstat,ipвместоifconfig. - Сочетание команд в пайплайнах — например, поиск утечек памяти:
ps aux --sort=-%mem | head -10 | awk '{print $2,$4,$11}'
- Агрегация через
watch— динамический мониторинг:
watch -n 2 'df -h /; echo; ss -s'
- Логирование вывода для аудита — всегда сохраняйте критичные операции:
{ date; whoami; systemctl restart app; } >> /var/log/maintenance.log 2>&1
В DevOps-практике ценность команды определяется её интеграцией в мониторинг (Prometheus metrics), автоматизацией (скрипты Ansible) и способностью предоставлять data-driven инсайты. Например, связка perf + FlameGraph для profiling или ebpf-инструменты (bpftrace) для анализа ядра в реальном времени становятся новым стандартом.