Страницы

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

суббота, 28 декабря 2019 г.

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

#ssh #консоль #shell


Иногда открытая сессия SSH может внезапно закрыться (broken pipe), например при работе
через GPRS/wi-fi с плохим качеством сигнала.

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


Ответы

Ответ 1



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

Ответ 2



Установите screen sudo apt-get install screen Сразу после подключения к ssh создайте новую сессию screen после рекконекта к ней можно подключиться вызовом screen -r Команда "два в одном" - подключение к существующей сессии или создание новой, если существующей нет: screen -D -r

Ответ 3



mosh + (по желанию) tmux или screen

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

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