Screen: Незаменимый инструмент для управления удаленными сессиями терминала

16 июля 2023 г.
В мире системного администрирования и веб-разработки мы часто работаем с удаленными серверами через SSH-соединения. Но что делать, если нужно запустить процесс, который занимает много времени, а мы не можем оставить компьютер включенным или поддерживать соединение активным? Здесь на помощь приходит Screen — мощная утилита, позволяющая управлять несколькими сессиями терминала и поддерживать работу процессов даже после закрытия соединения.
Что такое Screen?
Screen — это утилита командной строки, выполняющая роль мультиплексора терминалов. Это означает, что она может создавать и управлять несколькими сессиями терминала в одном окне. Каждая сессия работает независимо, позволяя переключаться между ними, отключаться и переподключаться, не прерывая работающие процессы.
Основные функции Screen
- Сохранение сессий: процессы продолжают работать даже после закрытия SSH-соединения.
- Множественные окна: позволяет работать над несколькими проектами одновременно в рамках одной SSH-сессии.
- Совместное использование сессий: дает возможность нескольким пользователям подключаться к одной сессии Screen.
- Настройка: предлагает варианты конфигурации для адаптации поведения к нашим потребностям.
Базовое руководство по Screen
Установка
В большинстве дистрибутивов Linux Screen уже предустановлен. Если нет, его легко установить:
sudo apt-get update
sudo apt-get install screen
Основные команды
-
Начать новую сессию:
screen -S имя_сессии -
Отключиться от сессии (не закрывая ее): Нажмите
Ctrl+A, затемD -
Список активных сессий:
screen -ls -
Переподключиться к сессии:
screen -r имя_сессии -
Завершить сессию: Внутри сессии введите
exitили нажмитеCtrl+D
Практический пример: Загрузка веб-сайта с помощью wget
Представьте, что вам нужно загрузить целый веб-сайт с помощью wget — процесс, который может занять часы. Вот как это сделать с помощью Screen:
-
Подключитесь к удаленному серверу через SSH.
-
Начните новую сессию Screen:
screen -S загрузка_сайта -
Внутри сессии запустите команду wget:
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent --continue https://example.com/ -
Отключитесь от сессии, нажав
Ctrl+A, затемD. -
Теперь вы можете закрыть SSH-соединение. Процесс загрузки продолжится в фоновом режиме.
-
Когда захотите проверить прогресс, снова подключитесь к серверу и к сессии Screen:
screen -r загрузка_сайта
Этот метод позволяет запускать длительные процессы, не беспокоясь о том, что компьютер должен оставаться включенным или SSH-соединение активным.
Заключение
Screen — незаменимый инструмент для любого системного администратора или разработчика, часто работающего с удаленными серверами. Его способность поддерживать активные сессии и управлять несколькими окнами терминала значительно повышает эффективность и гибкость удаленной работы.
Освоение Screen не только сэкономит время и избавит от разочарований, но и позволит выполнять сложные и длительные задачи с большей уверенностью и контролем. Включите Screen в свой рабочий процесс и поднимите свою продуктивность на новый уровень!