Страницы

Поиск по вопросам

четверг, 28 марта 2019 г.

Если ssh внезапно закрывается, как сохранить результаты работы на удалённом хосте?

Иногда открытая сессия SSH может внезапно закрыться (broken pipe), например при работе через GPRS/wi-fi с плохим качеством сигнала.
Если в момент разрыва на удалённом хосте что-то происходило (копирование большого списка файлов, сборка ПО из исходных кодов, или был открыт текстовый редактор), то результаты работы этого "чего-то" в большинстве случаев теряются. Это очень раздражает, как этого избежать?


Ответ

То, что Вам нужно, называется консольный мультиплексор. Идея в том, чтобы на удалённом хосте запустить процесс, который будет как бы "сохранять состояние консоли", независимо от того, есть ли в данный момент активная сессия (ssh или физического доступа к хосту "через клавиатуру и монитор") работы с этой консолью.
Сценарий действий будет таков:
коннектимся к удалённому хосту по ssh запускаем терминальный мультиплексор начинаем работать соединение рвётся восстанавливаем соединение восстанавливаем сеанс работы с терминальным мультиплексором продолжаем работать с того же самого места, где остановились, ничего не потеряв
Это удобно также для того, чтобы продолжить работу с другого комьютера, или передать работу над текущей консольной задачей коллеге.
Самые популярные консольные мультиплексоры - screen (прост в освоении, минимальный функционал) и tmux (несколько более сложен, но намного более функционален - например, позволяет в рамках одной сессии tmux открыть сразу несколько экземпляров терминала и выводить их в консоль одновременно, разделив экран на несколько произвольных областей).
Изучение ключей командной строки для команд screen и tmux оставлю на совести читателя.

Комментариев нет:

Отправить комментарий