Основні команди Linux для DevOps інженерів

Як DevOps інженер, освоєння команд Linux є основою для управління інфраструктурою, автоматизації задач і забезпечення безперебійних розгортань. Цей блог висвітлює критичні категорії команд Linux, які повинен знати кожен DevOps професіонал.

1. Управління процесами

Управління процесами є важливим для контролю і моніторингу програм, що працюють на Linux системах. Ось основні команди:

Ключові команди та їх використання:

Список процесів:

ps aux # Показує всі працюючі процеси  
ps -ef # Альтернативний формат для списку процесів  
ps -u username # Процеси для конкретного користувача

Моніторинг процесів:

top # Інтерактивний перегляд процесів  
htop # Покращена версія з кольоровим кодуванням і підтримкою миші

Керування процесами:

kill PID # Надіслати SIGTERM для завершення процесу  
kill -9 PID # Примусове завершення процесу  
killall name # Завершити всі процеси за ім'ям

Управління сервісами:

systemctl start service # Запустити сервіс  
systemctl stop service # Зупинити сервіс  
systemctl restart service # Перезапустити сервіс

Управління пріоритетами процесів:

nice -n 10 command # Запустити команду з нижчим пріоритетом  
renice -n 10 -p PID # Налаштувати пріоритет для працюючого процесу

2. Управління файловою системою

Файлові системи Linux організовані в дерево. Управління файлами та каталогами є важливою частиною адміністрування систем.

Ключові команди та їх використання:

Правила доступу до файлів

chmod 755 file # rwx для власника, rx для інших  
chown user:group file # Змінити власника

Пошук файлів

find / -type f -name "*.log" # Знайти всі лог файли  
find / -mtime -7 # Файли, змінені за останні 7 днів

Використання диску

du -sh * # Розмір вмісту каталогу  
df -h # Використання файлової системи

3. Управління мережею

Налаштування мережі та налагодження є важливими навичками DevOps.

Ключові команди та їх використання:

Мережеве підключення:

ip addr # Показати IP адреси  
ping -c 4 host # Перевірити підключення за допомогою 4 пакетів

Моніторинг портів:

netstat -tulpn # Показати порти і процеси, що слухають  
ss -tunlp # Сучасна альтернатива netstat

Налагодження мережі:

tcpdump -i eth0 # Захоплення пакетів на мережевому інтерфейсі  
nmap localhost # Сканування відкритих портів

4. Моніторинг системи

Моніторинг продуктивності системи гарантує надійність.

Ключові команди та їх використання:

Моніторинг ресурсів:

free -m # Показати використання пам'яті в МБ  
vmstat 1 # Статистика віртуальної пам'яті, оновлювана кожну секунду

Аналіз продуктивності:

perf top # Аналіз продуктивності CPU  
strace command # Трасування системних викликів

5. Управління логами

Логи необхідні для налагодження і аудиту системних операцій.

Ключові команди та їх використання:

Системні логи:

journalctl -f # Слідкувати за системними логами  
journalctl -u service # Переглянути логи конкретного сервісу  
tail -f /var/log/syslog # Слідкувати за системним логом

Аналіз логів:

grep -r "error" /var/log/ # Шукати помилки в логах  
awk '/pattern/ {print $1,$2}' logfile # Видобути певні поля

6. Управління пакетами

Ефективне управління програмним забезпеченням є важливим для оновлень системи та розгортання.

Ключові команди та їх використання:

Для RHEL/CentOS:

yum update -y # Оновити всі пакунки  
yum install package # Встановити конкретний пакунок

Для Ubuntu/Debian:

apt update && apt upgrade # Оновити систему  
apt install package # Встановити пакунок

7. Управління безпекою

Забезпечення безпеки системи включає в себе управління доступом користувачів, моніторинг і зміцнення конфігурацій.

Ключові команди та їх використання:

Управління користувачами:

useradd -m username # Створити користувача з домашнім каталогом  
passwd username # Встановити пароль для користувача

Моніторинг безпеки:

last # Показати останні входи  
fail2ban-client status # Показати заблоковані IP

Висновок

Освоєння цих команд Linux покращить вашу ефективність як DevOps інженера. Вони є важливими для автоматизації, налагодження і підтримки безпечних та високопродуктивних систем.

Перекладено з: Essential Linux Commands for DevOps Engineers

Leave a Reply

Your email address will not be published. Required fields are marked *