Чемоданчик инструментов — вот что отличает опытного специалиста от новичка. А в вопросах, связанных с администрированием Linux, такой чемоданчик — едва ли не самое важное. В этой статье мы не будем говорить о таких вещах, как Nagios, Puppet, Webmin, или изощренных анализаторах логов Apache — обо всем этом ты должен знать и так. Вместо этого мы поговорим о небольших утилитах, способных сделать твою жизнь намного проще.
Начнем 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 будет полностью восстановлена.
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
, поэтому их легко перемещать между машинами.
Cтатьи из последних выпусков журнала можно покупать отдельно только через два месяца после публикации. Чтобы читать эту статью, необходимо купить подписку.
Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке
1 год3200 р. Экономия 1400 рублей! |
1 месяц490 р. 25-30 статей в месяц |
Уже подписан?
Читайте также
Последние новости