November 22, 2024

Использование Screen в Ubuntu, как защиты от срыва сессии SSH

Я не претендую на знатока Linux систем я пользуюсь им только в том случае если нет подходящих инструментов под Windows или тогда, когда Linux справляется с задачей лучше своего конкурента так, что может у Screen совсем иная сакральная задумка, но я пользуюсь так как знаю.

В предыдущей статье Перенос почты с одного сервера на другой при помощи imapsync я описал как решал задачу по переносу почты. И при её выполнении я столкнулся с неприятной особенностью, что задача запущенная по SSH при его закрытии успешно тоже прерывалась (при разрыве соединения соответственно тоже). Дабы этого избежать как раз я и использовал Screen.

1) Сначала просто запускаем Screen соответствующей командой

screeen

2) Создастся новая сессия программы и появится приветственное сообщение. Для его закрытия нужно нажать Space или Enter.

3) Все управляющие команды начинаются с комбинации клавиш Ctrl + a, затем следует буква или сочетание клавиш. Буквы разных регистров выполняют разные команды. Также сочетания можно заменять текстом. Для его ввода нажмите Ctrl + a и :, после чего вводите текст.

Например, чтобы создать новое окно, нажмите по очереди сочетание Ctrl + a и затем c. Для просмотра списка созданных окон нажмите Ctrl + a и w.

Вообще команд очень много вплоть до вывода нескольких сессий на экран, все я их рассматривать не буду это легко ищется на просторах инетрнета.

Я использовал только 4

1) Смотреть список запущенных сессий можно командой

screen -ls

2) Вернуться к последней сессии

screen -rd

3) Вернуться к конкретной сессии из списка -ls

screen -r 23505

4) Завершить работу текущего окна можно с помощью комбинации Ctrl+a и k; подтвердите решение нажатием y.

Ещё хотелось бы добавить, что статус может иметь два состояния: Attached (задействован) и Detached (незадействован). Второе состояние у сессий, в которых ещё не происходили никакие процессы.

P.S. Теперь если запустить копирование из статьи Перенос почты с одного сервера на другой при помощи imapsync .\imapsync внутри созданной сессии screen вы не столкнетесь с проблемой, что придется запускать копирование заново при обрыве сессии SSH