Использование 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.
Вообще команд очень много вплоть до вывода нескольких сессий на экран, все я их рассматривать не буду это легко ищется на просторах инетрнета.
1) Смотреть список запущенных сессий можно командой
screen -ls
2) Вернуться к последней сессии
screen -rd
3) Вернуться к конкретной сессии из списка -ls
screen -r 23505
4) Завершить работу текущего окна можно с помощью комбинации Ctrl+a и k; подтвердите решение нажатием y.
Ещё хотелось бы добавить, что статус может иметь два состояния: Attached (задействован) и Detached (незадействован). Второе состояние у сессий, в которых ещё не происходили никакие процессы.
P.S. Теперь если запустить копирование из статьи Перенос почты с одного сервера на другой при помощи imapsync .\imapsync внутри созданной сессии screen вы не столкнетесь с проблемой, что придется запускать копирование заново при обрыве сессии SSH