Перейти до основного вмісту
Головна
нотатки кодера

Navigation

  • Головна
  • Про мене
  • Портфоліо
User account menu
  • Вхід

Рядок навіґації

  1. Головна

screen — кращий друг адміна

від vetal, 23 березня, 2011
Категорія
Адміністрування
  • Щоб додати коментар, увійдіть або зареєструйтесь

Однією з самих перших утиліт, котрі я ставлю на щойно піднятий сервер є screen. 

Ця маленька утиліта є незамінною в багатьох випадках, особливо, якщо це стосується роботи з віддаленими хостами. Основною задачою screen, як видно з її назви, є створення та керування багатьма віртуальними терміналами в рамках однієї login-сесії. Однак, най більш чудовою є можливість відключення від поточної сесії та підключення до неї через будь-який час. Ця особливість добре зарекомендувала себе при роботі з серверами по низько швидкісним і малонадійним каналам зв'язку, таких як GPRS чи PPP. 

Що ж такого корисного в цій особливості? Я думаю, що ті, хто хочаб раз намагався виконати тривалий за часом процес компіляції, наприклад перезібрати "світ" на віддаленому сервері з FreeBSD, мене зрозуміють. Розірвався канал — починай все з початку :) . Після запуску screen одразу створює 0-е вікно, запускає в ньому shell і поміщає туди користувача. Всі наступні операції виконуються за допомогою клавіатурних комбінацій, котрі починаються з «Ctrl-a». 

Як вже було сказано вище, для мене самою затребуваною можливістю є відключення від поточної сесії. Виконується ця процедура за допомогою комбінації «Ctrl-a d». Після цього можна сміливо закривати ssh-сесію та займатися іншими справами. Причепитися знову до запущеної сесії можна за допомогою ключа -r. Якщо у нас запущено декілька сесії screen на одному хосту, то додатково потрібно вказати PID запущеного screen-у, в який ми хочемо потрапити. 

server ~ # screen -r 
There are several suitable screens on: 
31624.pts-0.server (Detached) 
31047.pts-13.server (Detached) 
Type "screen [-d] -r [pid.]tty.host" to resume one of them. 

Інколи, якщо відключення від сесії відбулось не вручну, а з-за розриву з'єднання, виникає наступна ситуація: 

server ~ # screen -r 
There is a screen on: 31047.pts-13.server (Attached) 
There is no screen to be resumed. 

Цю проблему легко перемогти, використовуючи для запуску два ключі -d -r. Значно рідше я використовую можливість роботи з віртуальними екранами. 

Ось набір команд для проведення операцій над ними: 

Ctrl-a c Створити нове вікно 

Ctrl-a space Відкрити наступне вікно 

Ctrl-a backspace чи Ctrl-a del Відкрити попереднє вікно 

Ctrl-a 0-9 Вибір вікна 0-9 

Ctrl-a Ctrl-a Переключення між поточним чи попереднім вікном 

Ctrl-a w Вивести список вікон. Поточне вікно буде відмічено зірочкою (*) 

Ctrl-a k Закрити поточне вікно. Або просто вийти з оболонки, запущеного в цьому вікні. 

Ще однією фічею screen-a є можливість виконання операції копіювання/вставки між вікнами. Для включення режиму копіювання служить команда «Ctrl-a [» В режимі копіювання, курсор пересувається за допомогою стрілок, або за допомогою клавіш літер h,j,k,l. Початок блоку, що має бути скопійований та його кінець відмічається за допомогою пробілу. Вставка скопійованого блоку виконується за допомогою команди «Ctrl-a ]». 

Ну і наостанок варто згадати про коротку встроєну допомогу, котра викликається за допомогою комбінації «Ctrl-a ?» 

Крім того, вищеописаними командами можливості screen-у не обмежуються. Подробиці — в man 1 screen ;)

screen
utility
*nix

Категорії

  • Історії
  • Адміністрування
  • Поради
  • Програмування

Останні матеріали

  • SCP з докачуванням
    1 день ago
  • Таблиці IPFW
    1 місяць 2 тижні ago
  • Як видалити порт FreeBSD з залежностями
    1 місяць 2 тижні ago
  • screen — кращий друг адміна
    1 місяць 3 тижні ago
  • gd-png: fatal libpng error
    1 місяць 3 тижні ago
  • OpenCart облік прибутку
    2 місяці ago
  • Fail2Ban: Постійний бан
    2 місяці 3 тижні ago
  • Як отримати список змінених файлів між ревізіями
    5 років 2 місяці ago
  • Що робити якщо svn: database disk image is malformed
    6 років 2 місяці ago
  • Як виправити пошкоджений /etc/sudoers файл
    7 років 3 місяці ago

1980-2023 © All rights reserved. VAG.org.ua // нотатки кодера.