Вы когда-нибудь выполняли длительную задачу на удалённом сервере и теряли 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. Оба этих приложения просты в освоении и могут помочь защитить вашу работу, если что-то пойдёт не так.