У сфері системного адміністрування Linux серверів моніторинг процесів та управління ними є найважливішим аспектом підтримки стабільності та ефективності системи. Команда ps - це базовий наріжний інструмент, який повинен бути в руках будь-якого системного адміністратора, який дозволяє отримувати інформацію про запущені процеси, приводити її до різних видів та фільтрувати для пошуку необхідного процесу. У цій статті ми коротко розглянемо сферу застосування команди ps і кілька простих, але корисних прикладів, які допоможуть користувачам освоїти управління процесами в системах Linux.
Команда ps, скорочення від «стан процесу», є універсальним інструментом, який забезпечує знімок поточних процесів, запущених у системі Linux. Він пропонує безліч опцій та аргументів, що робить його потужною утилітою для адміністраторів, розробників та всіх, хто займається моніторингом системи.
Основний синтаксис команди ps включає вказівку різних параметрів та аргументів для налаштування виведення. Наприклад, проста команда ps без будь-яких опцій надає мінімальний набір інформації, включаючи ідентифікатор процесу (PID) та зв'язаний термінал.
$ps
PID TTY TIME CMD
804679 pts/1 00:00:00 bash
3445818 pts/1 00:00:00 ps
Виведення команди ps за замовчуванням зазвичай включає такі стовпці, як PID, TTY, TIME та CMD, що надають базову інформацію про кожен процес. Розуміння цих стовпців має вирішальне значення для ефективної інтерпретації результатів:
PID – ідентифікатор (номер) процесу в системі;
TTY - термінал виведення, пов'язаний з цим процесом
TIME – час роботи конкретного процесу
CMD - ім'я процесу
Справжня сила команди ps полягає у її здатності надавати широкий спектр інформації на основі вибраних параметрів. Давайте розглянемо деякі ключові параметри, що розширюють функціональність ps.
-e: відображати інформацію про процеси інших користувачів.
-u user: показати процеси для конкретного користувача.
-p pid: відображає інформацію для певного ідентифікатора процесу.
ax: список усіх процесів у системі, незалежно від терміналу.
aux: відображення докладної інформації, включаючи інформацію про користувача, використання процесора, пам'яті і т.д.
--sort: Можливість сортувати процеси за різними критеріями, такими як завантаження процесора або час запуску.
--format: Можливість налаштування виводу, вказавши стовпці, що відображаються.
Розуміння практичного застосування команди ps необхідне ефективного адміністрування системи. Розгляньмо реальні приклади, щоб проілюструвати його використання.
Використовуючи команду ps aux, адміністратори можуть визначати процеси, що надмірно споживають ресурси ЦП або пам'яті. Це має вирішальне значення для оптимізації продуктивності системи.
$ ps aux --sort=-%cpu | head
Щоб переглянути процеси для конкретного користувача, можна використати таку команду:
$ ps -u username
Команду watch можна комбінувати із ps для моніторингу процесів у режимі реального часу. Особливо це корисно для відстеження змін за певний інтервал.
$ watch -n 1 'ps aux | grep process_name'
Команда ps пропонує розширені функції, які підходять для складних завдань системного адміністрування та сценаріїв відшукання та усунення несправностей.
Команду ps можна використовувати з опцією H (або forest) для відображення ієрархічних відносин між батьківськими та дочірніми процесами.
$ ps aux --forest
...
root 2152218 0.0 0.0 13356 7248 ? Ss 2023 0:01 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
root 804559 0.0 0.0 14716 8808 ? Ss Jan16 0:00 \_ sshd: user [priv]
user+ 804581 0.0 0.0 14716 5788 ? S Jan16 0:01 \_ sshd: user@pts/0
user+ 804582 0.0 0.0 8012 3556 pts/0 Ss Jan16 0:00 \_ -bash
root 804602 0.0 0.0 9960 3776 pts/0 S Jan16 0:00 \_ su
root 804611 0.0 0.0 7160 3388 pts/0 S Jan16 0:00 \_ bash
root 804677 0.0 0.0 16292 5248 pts/0 S+ Jan16 0:13 \_ mc
root 804679 0.0 0.0 7264 3932 pts/1 Ss Jan16 0:00 \_ bash -rcfile .bashrc
root 3449830 0.0 0.0 10264 3516 pts/1 R+ 10:23 0:00 \_ ps aux --forest
...
Щоб відсортувати процеси за ідентифікатором сеансу, можна використовувати опцію --sid.
$ ps aux --sort=sid
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2 0.0 0.0 0 0 ? S 2023 0:02 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 2023 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 2023 0:00 [rcu_par_gp]
root 5 0.0 0.0 0 0 ? I< 2023 0:00 [slub_flushwq]
root 6 0.0 0.0 0 0 ? I< 2023 0:00 [netns]
...
Використання опції -O дозволяє включати тимчасові мітки у вихідні дані ps, забезпечуючи історичну перспективу активності процесу.
$ ps -O time -o command
PID TIME S TTY TIME COMMAND COMMAND
804679 00:00:00 S pts/1 00:00:00 bash -rcfile .bashrc bash -rcfile .bashrc
3449472 00:00:00 R pts/1 00:00:00 ps -O time -o command ps -O time -o command
Хоча команда ps є потужним союзником системних адміністраторів, потрібно бути відповідальним при її використанні та розуміти потенційні наслідки для безпеки системи, якщо доступ до інформації про процеси отримає зловмисник. Дотримуйтесь простих правил для підвищення рівня інформаційної безпеки.
Проводьте егулярний аудит та моніторинг системи:
Реалізація регулярних перевірок за допомогою команди ps забезпечує раннє виявлення аномалій та потенційних загроз безпеці.
Обмежте доступ до виконання команди ps:
Обмеження доступу до команди ps для непривілейованих користувачів запобігає отриманню конфіденційної системної інформації неавторизованими особами.
Налаштуйте інтеграцію із системними журналами:
Інтеграція виведення ps із системними журналами підвищує відстежуваність та забезпечує комплексне представлення історичних даних процесу, допомагаючи в аналізі після інцидентів.
Освоєння роботи з командою ps - важлива навичка для будь-якого адміністратора Linux, що відкриває шлях до ефективного управління процесами. Вивчивши хоча б основний його синтаксис, параметри та практичні приклади, користувачі зможуть точно орієнтуватися у складному середовищі запуску процесів. Команда ps, завдяки своїй універсальності та потужності, є життєво важливим інструментом для забезпечення оптимального функціонування та безпеки систем на базі Linux.
І якщо Ви вирішите більш тісно познайомитися з усіма можливостями цієї команди і поглибити свої навички в її використанні - переходьте в офіційний туторіал, а також шукайте конкретні приклади застосування команди ps в інтернеті. А в цій статті ми лише хотіли звернути вашу пильну увагу на такий потужний та корисний інструмент.
Jan. 27, 2024, 8:49 a.m.