ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Среда, 7 мая, 2025

Почему вам стоит использовать tmux для нестабильных SSH-соединений в Linux

Почему вам стоит использовать tmux для нестабильных SSH-соединений в Linux

Вы когда-нибудь выполняли длительную задачу на удалённом сервере и теряли SSH-соединение на полпути? Со мной такое случалось несколько раз. В этом посте мы расскажем, как Tmux может спасти работу, когда SSH-соединение постоянно обрывалось, и почему его стоит использовать при нестабильных SSH-соединениях в Linux.

 

Что такое Tmux?

Tmux — это мультиплексор терминалов, который позволяет запускать несколько сеансов терминала в одном окне. Он позволяет управлять различными задачами и переключаться между ними, запускать процессы в фоновом режиме и даже повторно подключаться к сеансам в случае разрыва соединения.

Tmux особенно полезен для удалённой работы по SSH, так как он продолжает выполнять ваши команды, даже если соединение нестабильно. Вы можете выйти из сеанса и вернуться позже. Ваша работа останется нетронутой.

 

Как Tmux помог мне во время Нестабильных SSH-подключений

Прежде чем начать загрузку, откройте новый сеанс tmux с помощью следующей команды:

tmux new -s backup_task

 

Затем запустите загрузку внутри сеанса tmux с помощью такой команды:

wget https://example.com/big-database.sql.gz

 

Позже, когда SSH-соединение оборвалось, мы снова вошли в систему и запустили:

wget https://example.com/big-database.sql.gz

 

И вот снова там, где остановились. Загрузка всё ещё продолжалась. мы не потеряли ни одного байта.

Мы также реализовали простой обходной путь для автоматического запуска сеанса tmux в удалённой системе при входе в систему через SSH. Это неоднократно помогало мне, когда я забывал запустить сеанс tmux изначально.

 

Почему мы рекомендуем Tmux

Если вы работаете с удалёнными серверами или часто используете SSH, tmux — очень полезный инструмент. Он помогает во многих аспектах:

 

В следующий раз, когда вы будете запускать что-то важное удалённо, не забудьте нажать tmux new -s my_session перед нажатием клавиши Enter. Вы поблагодарите себя в будущем, когда Wi-Fi вас подведёт.

Лично мы используем tmux, но вы также можете использовать screen, ещё один хороший мультиплексор терминалов. И tmux, и screen — надёжные инструменты для управления сеансами терминала.

 

Когда Tmux не может помочь

Tmux — это настоящая находка для команд, выполняемых на удалённом сервере (например, для установки программного обеспечения или загрузки файлов на сервер).

Но если ваша задача зависит от локального SSH-соединения, например, если вы загружаете файл с сервера на свой ноутбук, то Tmux вам не поможет.

Например, если вы попытаетесь загрузить файл с удалённого сервера на свой локальный компьютер (например, scp server:file.txt .), передача завершится ошибкой, когда SSH отключится. Потому что ваш локальный компьютер является получателем.

Tmux поможет только в следующем сценарии.

Например, предположим, что вы подключаетесь к удалённому серверу по SSH. Вы открываете сеанс tmux и начинаете загружать файл из Интернета на удалённый сервер (например, wget или curl на сервере).

Через некоторое время SSH-соединение вашего локального компьютера с удалённым сервером обрывается. Что происходит дальше?

Загрузка продолжается без перерывов на удалённом сервере, потому что Tmux поддерживает её работу. Когда вы позже подключитесь по SSH, вы сможете повторно подключиться к сеансу Tmux и проверить ход загрузки.

Загрузка зависит от подключения удалённого сервера к интернету, а не от вашего локального SSH-соединения.

Tmux действует как «экран» для терминала удалённого сервера. Ему всё равно, если ваш локальный SSH-сервер отключится.

 

Tmux не будет сохранять передачи, которые зависят от вашего локального SSH-соединения, но он может защищать операции на удалённой стороне (например, загрузку файла на сервер). Для загрузки на локальный компьютер используйте такие инструменты, как rsync --partial или сначала загрузите файл на сервер.

 

Надеемся, это поможет вам понять, что может и чего не может делать tmux. В следующих разделах я расскажу вам, как начать работу с tmux.

 

Как начать использовать Tmux

УстановкаTmux

Tmux доступен в репозиториях по умолчанию большинства дистрибутивов Linux.

В Debian, Ubuntu и их производных вы можете установить tmux с помощью команды:

sudo apt install tmux

 

На Fedora, RHEL:

sudo dnf install tmux

 

Базовое использование Tmux

Начните новый сеанс:

tmux new -s mysession

 

Это запустит новый сеанс под названием «mysession». В нём вы сможете выполнять свои команды.

Затем выйдите из сеанса, нажав Ctrl + b, затем d. Не волнуйтесь, команды по-прежнему будут выполняться в сеансе tmux.

Вы можете повторно подключить его позже, используя команду:

tmux attach -t mysession

 

Спасибо Вам, разработчики Tmux

Мы хотим поблагодарить всех, кто работает над tmux и другими подобными инструментами. Этим проектам не уделяется много внимания, но они играют очень важную роль в системном администрировании.

Если вы часто пользуетесь терминалом, я настоятельно рекомендую попробовать tmux или screen. Оба этих приложения просты в освоении и могут помочь защитить вашу работу, если что-то пойдёт не так.

Exit mobile version