Встановлення та налаштування Nginx на AlmaLinux 9: команди, запуск, брандмауер, конфігураційні файли, віртуальні хости та типові помилки. Покрокова інструкція д...
Блог компанії 3v-Hosting
9 хв.
Кожен, хто запускав тривалі команди на віддаленому сервері, хоча б раз стикався з такою неприємною ситуацією, коли інтернет зник на кілька секунд, ноутбук перейшов у режим сну або випадково закрилося вікно терміналу, а після повторного підключення виявляється, що процес перервався і кілька годин роботи втрачено даремно.
Таке може траплятися під час створення резервних копій, перенесення даних, оновлення системи, імпорту великих баз даних або компіляції проєктів. А якщо операція триває годину чи дві, то повторний запуск обходиться досить дорого.
Звісно, існують такі інструменти, як nohup, systemd та cron. І ці інструменти чудово підходять для автоматизації рутинних завдань. Але коли вам потрібно бачити вихідні дані програми, час від часу вводити нові команди або перемикатися між кількома завданнями, тоді набагато зручніше використовувати спеціалізовану утиліту tmux.
Для більшості адміністраторів Linux, DevOps-інженерів та розробників це вже давно звичний інструмент, який можна освоїти всього за кілька хвилин, але згодом він заощадить вам купу нервів, сил і часу.
tmux - це класичний мультиплексор терміналу. Тобто він створює окрему термінальну сесію, яка продовжує працювати незалежно від SSH-з’єднання.
Уявіть собі звичайне SSH-з’єднання як телефонну розмову. Поки є зв’язок - у вас усе працює. Але щойно з’єднання обірвалося - ваша розмова закінчилася.
А ось при використанні tmux робоча сесія залишається на сервері активною, навіть якщо ви відключилися, тому можна повернутися через кілька хвилин або наступного дня, а ваш термінал залишиться в тому ж стані, в якому ви його залишили. Виходить, що SSH використовується лише для підключення до вже існуючого робочого середовища, але всі процеси продовжують виконуватися всередині tmux.
Запускати через tmux можна практично будь-які команди. Особливо він буде корисний для тих операцій, які виконуються досить довго. Прикладами таких операцій можуть бути, наприклад:
rsync;
І ось якщо під час роботи зникне SSH-з’єднання, то процес не зупиниться, а після повторного підключення до віддаленого сервера вам залишиться лише повернутися до своєї сесії.
У всіх популярних дистрибутивах Linux встановлення tmux займає всього кілька секунд, оскільки всі необхідні пакети є в репозиторіях. Нижче ми наведемо команди для встановлення на найпопулярніші дистрибутиви.
sudo apt update
sudo apt install tmux
sudo dnf install tmux
sudo pacman -S tmux
Перевірити встановлення можна за допомогою команди:
tmux -V
Якщо на екрані з’явилася версія програми, наприклад:
tmux 3.5a
- значить, усе готово до роботи.
Уся робота в tmux будується навколо сесій. Саме всередині них запускаються програми, відкриваються вікна та панелі, а також продовжують виконуватися тривалі процеси після відключення від сервера.
Створити нову сесію можна однією командою:
tmux
Такий варіант підходить для швидкого запуску. Але для повсякденної роботи краще відразу давати сесіям зрозумілі імена, особливо якщо одночасно доводиться працювати з кількома проєктами.
Зробити це можна за допомогою такої команди:
tmux new -s backup
Після цього ви опинитеся всередині нової сесії, де зможете запускати будь-які інші команди, наприклад, резервне копіювання бази даних або виконання тривалого скрипта. Усі процеси виконуватимуться всередині tmux і не залежатимуть від стану SSH-з’єднання, тому навіть якщо зв’язок із сервером обірветься, робота скриптів або команд продовжиться, а згодом ви зможете знову підключитися до цієї ж сесії.
Повний перелік команд ви можете знайти на сайті проєкту, але для повсякденної роботи достатньо знати лише кілька команд.
| Дія | Команда |
|---|---|
| Створити нову сесію | tmux new -s ім'я |
| Переглянути список сесій | tmux ls |
| Підключитися до сесії | tmux attach -t ім'я |
| Завершити вибрану сесію | tmux kill-session -t ім'я |
| Завершити всі сесії | tmux kill-server |
Цього набору цілком вистачить для виконання більшості завдань.
Як ми вже зрозуміли, головною особливістю tmux є можливість покинути термінал, не зупиняючи запущені процеси. Для цього натисніть таку комбінацію клавіш:
Ctrl+B, потім D
Після цього ви повернетеся до звичайної оболонки. Тепер ви можете закрити термінал, від’єднатися від сервера або навіть вимкнути комп’ютер, але все, що працює всередині tmux, продовжить виконуватися.
Пізніше знову підключіться до сервера через SSH і перегляньте список активних сесій:
tmux ls
Ви побачите ті імена, які присвоїли сесіям під час їх створення, наприклад:
backup
deploy
monitoring
Щоб повернутися до потрібної вам сесії, виконайте команду:
tmux attach -t backup
Ви побачите термінал у тому ж стані, в якому залишили його раніше, включаючи весь вивід програми, яка там виконувалася.
Саме тому tmux так цінують під час роботи з VPS. Навіть якщо інтернет несподівано зникне під час створення резервної копії, розгортання Docker-додатка або оновлення системи, процес не доведеться запускати заново. Достатньо буде знову підключитися до сервера та виконати tmux attach.
Одна з найзручніших можливостей tmux - це можливість створення декількох робочих просторів у межах однієї сесії. Можна створювати окремі вікна, швидко перемикатися між ними та, за потреби, розділяти одне вікно на кілька панелей. Наприклад, в одному вікні можна залишити логи додатка, в іншому стежити за завантаженням сервера, а в третьому редагувати конфігурацію веб-сервера.
Якщо одного вікна недостатньо, його можна розділити на кілька панелей. Це зручно, коли потрібно одночасно стежити за логами та виконувати команди в тій самій робочій області.

Такий підхід швидко замінює кілька окремих SSH-підключень і робить роботу з сервером помітно зручнішою.
Усі комбінації клавіш у tmux починаються з так званого префікса, яким є комбінація клавіш:
Ctrl+B
Після цього натискається друга клавіша.
| Дія | Комбінація |
|---|---|
| Створити нове вікно | Ctrl+B, потім C |
| Наступне вікно | Ctrl+B, потім N |
| Попереднє вікно | Ctrl+B, потім P |
| Розділити вікно по вертикалі | Ctrl+B, потім % |
| Розділити вікно по горизонталі | Ctrl+B, потім " |
| Перемкнутися між панелями | Ctrl+B, потім O |
| Закрити поточну панель | Ctrl+B, потім X |
| Від'єднатися від сесії | Ctrl+B, потім D |
Більшість користувачів щодня використовує лише кілька комбінацій, які дуже швидко запам'ятовуються, і робота з tmux стає зручною, швидкою та інтуїтивною.
Не можна не згадати, що існує ціла низка інструментів, схожих на tmux, і серед них найчастіше згадується nohup, який часто порівнюють із tmux, хоча їхні завдання дещо відрізняються.
nohup також дозволяє процесу продовжувати роботу після закриття терміналу, і якщо потрібно просто запустити команду та забути про неї, цього цілком достатньо.
Однак tmux зберігає всю робочу сесію, до якої можна знову підключитися, переглянути вихідні дані програм, зупинити процес, змінити параметри або продовжити роботу з того самого місця.
Нижче ми спробували у простій табличній формі навести основні збіги та відмінності найпопулярніших інструментів.
| Можливість | tmux | screen | nohup |
|---|---|---|---|
| Процес продовжує працювати після відключення | Так | Так | Так |
| Повторне підключення до термінала | Так | Так | Ні |
| Кілька вікон | Так | Так | Ні |
| Поділ вікна на панелі | Так | Обмежено | Ні |
| Інтерактивна робота | Так | Так | Ні |
Для сучасних Linux-систем tmux давно став основним інструментом такого класу, який зарекомендував себе як стабільний і зручний продукт.
Після кількох днів роботи з tmux зазвичай з’являються прості звички, які роблять використання інструменту набагато зручнішим.
Насамперед давайте сесіям зрозумілі імена, адже знайти сесію backup або production набагато простіше, ніж згадувати, що ховається за тією чи іншою безіменною сесією.
Також для кожного проєкту або сервера краще створювати окрему сесію. Так робочий простір залишається впорядкованим, а перемикатися між завданнями стає простіше.
Ну і коли робота завершена, краще видаляйте сесії, які більше не потрібні. Це допоможе підтримувати порядок і швидше знаходити активні проєкти.
Новачки найчастіше припускаються кількох однакових помилок:
tmux kill-server, коли потрібно видалити лише одну сесію;Більшість цих помилок трапляється лише один раз, але після невеликої практики робота з tmux стає звичною й майже автоматичною.
Так. Для цього достатньо від’єднатися від сесії, натиснувши Ctrl+B, а потім D. Після цього можна закрити термінал, від’єднатися від сервера або навіть вимкнути комп’ютер. Усі процеси, запущені всередині tmux, продовжать працювати.
Нічого критичного не станеться. SSH-з’єднання розірветься, але сама tmux-сесія продовжить працювати на сервері. Після повторного підключення достатньо виконати tmux attach, щоб продовжити роботу з того самого місця.
Так. Більше того, саме так найчастіше й працюють. Наприклад, одну сесію можна використовувати для резервного копіювання, іншу - для розгортання додатка, а третю - для моніторингу сервера.
Так. Якщо підключитися до однієї й тієї ж сесії з кількох пристроїв, скрізь відображатиметься один і той самий термінал. Це зручно, коли потрібно продовжити роботу з іншого комп’ютера або спільно адмініструвати сервер.
Ні. tmux не переживає перезавантаження операційної системи. Після запуску сервера потрібно буде створити нову сесію та, за необхідності, знову запустити потрібні процеси.
Так. tmux працює на стороні сервера і не залежить від SSH-клієнта. Підійдуть PuTTY, OpenSSH, Windows Terminal, MobaXterm, Termius та будь-які інші програми.
Обидва інструменти дозволяють запускати процеси в окремих термінальних сесіях і повертатися до них пізніше. Однак tmux пропонує зручнішу роботу з вікнами та панелями, гнучке налаштування й активно розвивається, тому сьогодні саме його частіше рекомендують для нових проєктів.
tmux - один із тих інструментів, який швидко стає частиною повсякденної роботи з Linux-серверами. Він дозволяє не турбуватися про випадковий розрив SSH-з’єднання, допомагає організувати робочий простір і позбавляє від необхідності повторного запуску тривалих завдань.
Якщо ви регулярно працюєте з VPS, адмініструєте сервери, розгортаєте Docker-додатки, переносите дані або просто виконуєте команди, які працюють годинами, tmux варто освоїти в першу чергу. На вивчення базових можливостей піде зовсім небагато часу, а користуватися ними ви, швидше за все, будете щодня.
Як визначити, хто видалив файл на сервері під управлінням Linux. Перевірка історії команд Bash, системних журналів, auditd, Docker, Git та інших джерел, які доп...
Як перенести Docker Compose на новий VPS без простою: підготовка сервера, перенесення Docker Volumes, баз даних і файлів, перевірка проєкту та безпечне перемика...
Налаштування автоматичного оновлення Ubuntu Server за допомогою unattended-upgrades та Canonical Livepatch. Автоматична інсталяція оновлень безпеки, перевірка н...