Чемоданчик инструментов — вот что отличает опытного специалиста от новичка. А в вопросах, связанных с администрированием 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. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

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


3 комментария

  1. Kadist

    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

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

Check Also

Все по песочницам! Запускаем приложения в отдельных виртуалках с помощью AppVM

Если ты действительно заботишься о безопасности, то некоторые приложения есть смысл запуск…