Екран – консольна утиліта дозволяє в чинній SSH сесії відкривати необмежену кількість незалежних віртуальних терміналів (вікон). Процеси, що виконуються всередині screen, що не перериваються навіть при обриві сесії з сервером.

Утиліта screen є відмінним інструментом як для новачків в Linux, так і для досвідчених системних адміністраторів. Всередині сесії screen можна запускати процеси, які вимагають тривалий час на виконання. В цей же час ви завжди можете просто закрити консоль і запущений процес буде виконуватися в тлі.

Установка утиліти screen в Linux

Утиліта screen за умовчанням встановлена ​​в ряді дистрибутивів Linux. У CentOS 8 утиліта за замовчуванням не встановлена, доведеться доставляти вручну за допомогою пакетного менеджера:

# dnf install epel-release -y – встановлюємо репозиторій EPEL, де розміщується дана утиліта

# dnf install screen -y – встановлюємо утиліту

установка screen в linux

На Debian / Ubuntu установка виконується так:

# apt install screen

Щоб подивитися встановлену версію screen, введіть команду:

# screen --version

Screen version 4.06.02 (GNU) 23-Oct-17

Запуск і використання screen, робота з сесіями, фонові процеси

запустіть сесію екран однією командою:

# screen

запуск утиліти screen в linux

Щоб вивести довідку по використанню екран, Натисніть комбінацію ctrl + a і після цього введіть знак питання (?).

гарячі клавіші screen

Повернутися до сесії екран можна через кнопку пробіл (простору)

Щоб повністю закрити термінал екран, Натисніть клавіші ctrl + d:

[screen is terminating]

[root@server ~]#

Щоб просто вийти з сесії screen, не закриваючи її повністю, іспользуйтекомбінацію:

Ctrl + оголошення

Якщо у вас відкрита одна сесія екран, Повернутися до неї можна за допомогою команди:

# screen -r

Перевірити список запущених сесій екран:

# screen -list

або

# screen -ls

Якщо сесій кілька, можна отримати ID сесії і отримати доступ до потрібної:

# screen -x ID

або

# screen -r ID

підключення до сесії screen

Якщо ви запускаєте кілька сесій екран, То зручніше буде давати їм правдиві імена процесу, який там виконується. наприклад:

# screen -S rsync

змінити назву сесії screen

Тепер, якщо у вас кілька різних сесії іменованих screen і ви легко розберетеся в яку з нах вам потрібно переключитися.

Є ще дуже зручна функція в екран – це поділ екрану (розколоти). Екран можна ділити як по горизонталі, так і по вертикалі. Наприклад, щоб розділити екран по горизонталі, в сесії screen потрібно натиснути ctrl + a S.

Екран розділиться на дві частини. Щоб переключитися на другу частину, введіть ctrl + вкладка і після перемикання для активації ctrl + ac. Одночасно в двох частинах, можна запускати потрібні скрипти або утиліти:

screen розділити екран на 2 частини

Щоб розділити екран по вертикалі, використовуйте ctrl + a |

Більш того, роздільників може бути необмежено кількість:

screen кілька екранів

Перемикаємося по ним все також за допомогою ctrl+ вкладка.

Щоб закрити всі роздільники і залишитися в активному вікні, використовуйте ctrl + a Q або просто пропишіть в консолі тільки.

Щоб прибрати померлі або завислі сесії екран, Використовуйте команду:

# screen -wipe

Ще кілька гарячих клавіш screen:

  • Створити нове вікно: Ctrl+a c
  • Перейти до наступного вікна: Ctrl+a p
  • Перейти до попереднього вікна: Ctrl+a n
  • Змінити ім’я вікна: Ctrl+a a
  • Знищити вікно: Ctrl+a k
  • Перейти до вікна з номером 1 (можна використовувати цифри від 0 до 9): Ctrl+a 1

Для тонкої настройки параметрів screen можна використовувати конфігураційні файли:

Повна довідка по екран:

# man screen

Сценарії використання screen в Linux

Найчастіше утиліта екран використовується для операцій, які виконуються тривалий час і чутливі до обриву сесії. Це можуть бути оновлення, копіювання файлів, створення бекапа, запуск якогось скрипта або процесу і багато іншого. У моїй практиці не обходиться і дня, щоб я не скористався цією утилітою. Найчастіше, це перенесення файлів з одного сервера на інший або об’ємні поновлення пакетів. Наприклад, можна запустити rsync файлів з одного сервера на інший:

# screen -S backup
# rsync -avzr --progress /var/www/site/ IP:/var/www/site/

або запустіть пінг до будь-якого ресурсу:

запуск ping в окремому screen

В екран можна запустити будь-який php-скрипт, який постійно виконує обмін з будь-якими ресурсами, наприклад, інтеграція з сайтом або порталом:

запуск php скрипта в screen

Скрін можна запустити з такими параметрами:

# screen -A -m -d -S B24 /usr/bin/su - bitrix -c "/usr/bin/php /var/www/integration/tools/parser.php"

Ми відразу запускаємо термінал і в ньому виконуємо запуск php-парсер, який постійно виконує коннект до порталу Bitrix24. Перевіримо список запущених терміналів:

# screen -ls

There is a screen on:
993.B24 (Detached)

І для максимальної надійності, можна нову сесію ssh запускати відразу з включеним screen. У файл /root/.bash_profile додайте рядок екран:

запуск screen з bash_profile

Тепер при запуску нової сесії у вас відразу буде відкриватися екран термінал:

автоматичний запуск терміналу screen в новій сесії linux

У цій статті, ми розглянули дуже гнучкий інструмент screen, який допомагає в повсякденній роботі з адміністрування серверів і виконання різних завдань. Застосовуйте на практиці дану статтю, розширюйте свої навички в області системного адміністрування Linux.

Leave a Reply

Your email address will not be published. Required fields are marked *