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

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

16 июля 2023 г.

В мире системного администрирования и веб-разработки мы часто работаем с удаленными серверами через SSH-соединения. Но что делать, если нужно запустить процесс, который занимает много времени, а мы не можем оставить компьютер включенным или поддерживать соединение активным? Здесь на помощь приходит Screen — мощная утилита, позволяющая управлять несколькими сессиями терминала и поддерживать работу процессов даже после закрытия соединения.

Что такое Screen?

Screen — это утилита командной строки, выполняющая роль мультиплексора терминалов. Это означает, что она может создавать и управлять несколькими сессиями терминала в одном окне. Каждая сессия работает независимо, позволяя переключаться между ними, отключаться и переподключаться, не прерывая работающие процессы.

Основные функции Screen

  1. Сохранение сессий: процессы продолжают работать даже после закрытия SSH-соединения.
  2. Множественные окна: позволяет работать над несколькими проектами одновременно в рамках одной SSH-сессии.
  3. Совместное использование сессий: дает возможность нескольким пользователям подключаться к одной сессии Screen.
  4. Настройка: предлагает варианты конфигурации для адаптации поведения к нашим потребностям.

Базовое руководство по Screen

Установка

В большинстве дистрибутивов Linux Screen уже предустановлен. Если нет, его легко установить:

sudo apt-get update
sudo apt-get install screen

Основные команды

  1. Начать новую сессию:

    screen -S имя_сессии
    
  2. Отключиться от сессии (не закрывая ее): Нажмите Ctrl+A, затем D

  3. Список активных сессий:

    screen -ls
    
  4. Переподключиться к сессии:

    screen -r имя_сессии
    
  5. Завершить сессию: Внутри сессии введите exit или нажмите Ctrl+D

Практический пример: Загрузка веб-сайта с помощью wget

Представьте, что вам нужно загрузить целый веб-сайт с помощью wget — процесс, который может занять часы. Вот как это сделать с помощью Screen:

  1. Подключитесь к удаленному серверу через SSH.

  2. Начните новую сессию Screen:

    screen -S загрузка_сайта
    
  3. Внутри сессии запустите команду wget:

    wget --mirror --convert-links --adjust-extension --page-requisites --no-parent --continue https://example.com/
    
  4. Отключитесь от сессии, нажав Ctrl+A, затем D.

  5. Теперь вы можете закрыть SSH-соединение. Процесс загрузки продолжится в фоновом режиме.

  6. Когда захотите проверить прогресс, снова подключитесь к серверу и к сессии Screen:

    screen -r загрузка_сайта
    

Этот метод позволяет запускать длительные процессы, не беспокоясь о том, что компьютер должен оставаться включенным или SSH-соединение активным.

Заключение

Screen — незаменимый инструмент для любого системного администратора или разработчика, часто работающего с удаленными серверами. Его способность поддерживать активные сессии и управлять несколькими окнами терминала значительно повышает эффективность и гибкость удаленной работы.

Освоение Screen не только сэкономит время и избавит от разочарований, но и позволит выполнять сложные и длительные задачи с большей уверенностью и контролем. Включите Screen в свой рабочий процесс и поднимите свою продуктивность на новый уровень!