SSH остается наиболее распространенным способом доступа к нашим серверам Linux. Большинство пользователей вручную не вписывают в консоль сервера. Через SSH вы можете делать почти все, кроме определенных операций на низком уровне. Однако это оставляет нас открытыми для возможности разъединения. Это может быть неожиданно, но это очень реальная возможность. Неожиданные колебания в Интернете, скачок мощности и сеанс SSH немедленно прекращаются. Наряду с этим, любые процессы, которые могли быть запущены, как правило, также прекращаются. Не только активные, но и все фоновые процессы. Если вы делаете что-то важное, что не должно прерываться посередине – как сложная установка, это может полностью испортить вашу систему.
В этой статье мы покажем вам, как восстановить аварийное отключение на SSH.
В предыдущей статье мы показали вам, как установить и использовать пакет «screen» в системе Linux. Хотя это было для демонстрации многозадачности в Linux, вы также можете использовать screen для сохранения ваших сеансов SSH. Это фантастическая выгода, и она продвигает экран к вершине любых «обязательных» утилит для использования на вашем Linux-сервере.
Допустим, мы запустили процесс sleep в течение 30 минут и вытолкнули его на задний план.
Теперь мы просто закрываем сеанс SSH. Мы не уходим обычно. Мы просто нажимаем «X» в верхней части окна. Когда мы снова войдем в систему, наш процесс исчезнет. Он больше не существует и был убит, как только мы закрыли SSH.
Теперь попробуем сделать то же самое с активированным экраном. Мы запускаем ту же команду, но на этот раз внутри «screen».
Это новый сеанс screen, на экране «0». Теперь, когда мы закрываем SSH и возвращаемся, мы можем получить список всех предыдущих экранов с помощью команды:
screen -ls
Пример сеанса screen с именем:
PTS-0.test-CentOS-сервер
Чтобы снова подключиться к нему, просто введите:
screen -r
И он вернет вас туда, где вы были до того, как прекратилось соединение SSH! Это интересный инструмент, который вам нужно использовать для всех важных операций, таких как страхование от случайных прерываний.
Ручное разделение экранов
Когда вы нарушаете сеанс SSH, на самом деле происходит то, что экран автоматически отделяется от него и существует независимо. Хотя это здорово, вы также можете отключить экраны вручную и одновременно использовать несколько экранов.
Например, чтобы отсоединить экран, просто введите:
screen -d
И текущий экран будет отсоединен и сохранен. Однако все процессы внутри него все еще запущены, и все состояния сохранены.
Вы можете повторно подключиться к экрану в любое время, используя команду «screen -r». Чтобы подключиться к определенному экрану, а не самому последнему, используйте:
screen -r [screenname]
Изменение имен экранов, чтобы сделать их более релевантными
По умолчанию имена экранов не имеют большого значения. И когда у вас есть куча присутствующих, вы не будете знать, какие экраны содержат какие процессы. К счастью, переименование экрана легко, когда внутри него. Просто введите:
ctrl + a
В предыдущей статье мы видели, что «ctrl + a» – это условие запуска для команды screen. Двоеточие (:) приведет вас в нижнюю часть экрана, где вы можете вводить команды. Чтобы переименовать, используйте:
sessionname [newscreenname]
И теперь, когда вы отсоединяете экран, он будет отображаться с новым именем, например:
3545.sleeping
Теперь вы можете иметь столько экранов, сколько хотите, не путаясь о том, какой из них!