Чемоданчик инструментов — вот что отличает опытного специалиста от новичка. А в вопросах, связанных с администрированием Linux, такой чемоданчик — едва ли не самое важное. В этой статье мы не будем говорить о таких вещах, как Nagios, Puppet, Webmin, или изощренных анализаторах логов Apache — обо всем этом ты должен знать и так. Вместо этого мы поговорим о небольших утилитах, способных сделать твою жизнь намного проще.
 

Tmux

Начнем c основы основ. Как мы все знаем, главный инструмент администрирования Linux — это SSH-клиент, либо из комплекта OpenSSH, либо обособленный, вроде PuTTY или даже приложения для Android. SSH-клиент позволяет открыть удаленную сессию командной строки и спокойно работать с машиной, которая находится за тысячи километров от тебя. Проблема только в том, что это одна сессия и она не запоминает состояние.

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

Работает это так. Ты подключаешься к удаленной машине с помощью SSH, затем устанавливаешь на нее tmux и запускаешь его. На экране появляется консоль tmux со строкой состояния внизу и одним запущенным в данный момент терминалом. Ты можешь работать с ним так же, как обычно, плюс у тебя есть возможность открывать новые терминалы с помощью Ctrl+b c и переключаться между ними с помощью Ctrl+b 0..9 или Ctrl+b p (предыдущий), Ctrl+b n (следующий).

Когда работа будет окончена, нажимаешь Ctrl+b d, чтобы отключиться от tmux, и разрываешь соединение с сервером. При следующем подключении ты выполняешь команду

$ tmux attach

и видишь все открытые ранее терминалы, запущенные в них приложения, историю команд и так далее. Все ровно так, как во время отключения от tmux. Более того, абсолютно неважно, с какой машины ты зашел во второй раз, сессия tmux будет полностью восстановлена.

 

Tmuxinator

Tmux позволяет не только открывать терминальные окна в полный экран. Он умеет делить экран по вертикали (Ctrl+b %) и горизонтали (Ctrl+b "). Это можно использовать в том числе для создания чего-то наподобие «экрана мониторинга»: например, ты можешь запустить на удаленной машине tmux с тремя открытыми окнами, в одном из которых будет монитор htop, в другом — утилита tail, выводящая последние сообщения из нужного лога, а еще в одном — утилита df, показывающая заполненность файловых систем.

На первый взгляд такой монитор кажется очень удобным, но что, если тебе необходимо закрыть его и запустить tmux с обычными полноэкранными окнами, а затем снова открыть монитор? Это можно реализовать с помощью нескольких различных tmux-сессий. Но это тоже не идеальный вариант, потому что на другом сервере тебе придется настраивать ту же конфигурацию окон заново.

Tmuxinator решает задачу проще. Он позволяет описать нужную раскладку окон и запускаемые в них приложения в конфигурационном файле. Этот конфиг затем можно использовать для быстрого запуска сессии tmux в любом месте в любое время.

Для начала создай новый конфиг:

$ tmuxinator new ИМЯ

Tmuxinator откроет дефолтовый текстовый редактор, определенный в переменной EDITOR. В конце конфига будут строки, описывающие раскладку окон. Чтобы получить раскладку из примера выше, удали их и добавь следующие строки:

windows:
    - editor:
        layout: tiled
        panes:
            - sudo tail -f /var/log/vsftpd.log
            - watch df -h
            - htop

Этот конфиг описывает раскладку tmux с одним окном, поделенным на три панели: последние сообщения лога vsftpd, заполненность ФС и htop. Остается только запустить сессию:

$ tmuxinator start ИМЯ

Все конфиги хранятся в каталоге ~/.tmuxinator, поэтому их легко перемещать между машинами.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


Check Also

DDoS на Bluetooth. Разбираем трюк, который поможет отключить чужую колонку

На свете существует не так много вещей, которые бесят практически всех без исключения. Это…

5 комментариев

  1. Аватар

    K

    26.10.2017 at 15:00

    Спасибо большое!

  2. Аватар

    gringo23

    31.10.2017 at 11:58

    Спасибо!
    lsof -i[4,6] :[port] — не поддерживается, нужно указаывать без версии lsof -i :80.

  3. Аватар

    phoenixsds

    31.10.2017 at 20:33

  4. Аватар

    skycheg

    12.12.2018 at 13:56

    Привет всем.

    почему так?
    -bash: /usr/bin/multitail: Permission denied

    запускаю от root.

    RHEL 6
    -rwxrwxr-x 1 root root 272232 Feb 18 2014 /usr/bin/multitail

  5. Аватар

    skycheg

    12.12.2018 at 14:01

Оставить мнение