Пользователь
0,0
рейтинг
7 апреля 2014 в 17:06

Администрирование → bcat: просмотр вывода консольных программ в браузере tutorial

С удивлением обнаружил, что никто на Хабрахабре не писал про bcat. Это маленькая удобная утилита для просмотра вывода консольных программ в браузере. У вас есть скрипт, возвращающий HTML? Bcat! Нужен простой предпросмотр для README-файла с Markdown-форматированием, который вы только что дописали? Bcat! Пишете парсер веб-сайта, и хотите посмотреть, что за ошибку возвращает сайт? Bcat! Есть большой лог, и вы хотите, чтобы он отобразился чёрным по белому, и его было удобно читать? Ну, вы поняли, да? :)

Программа работает на Linux, Mac OS X и FreeBSD (и, теоретически, на любой UNIX-подобной платформе с интеграцией freedesktop.org).

Для установки bcat можно воспользоваться gem:

gem install bcat

Вместе с bcat устанавливается rack (если, конечно, он не был уже установлен до этого).

Для проверки можно попробовать открыть календарь на 2014 год:

python -c "import calendar ; print calendar.HTMLCalendar().formatyear(2014)" | bcat

Если в браузере открылась новая вкладка, и в ней отобразился календарь — значит, всё работает правильно.

Просмотр логов

tail -n 1000 -f /var/log/messages | bcat

Текст в браузере будет обновляться по мере появления новых строк в логе.

Лог на удалённом сервере можно смотреть так:

ssh mywebsite.com 'sudo tail -f /var/log/nginx/access.log' | bcat

Использование в качестве пейджера

Можно использовать bcat как pager для разных программ.

Для man:

export MANPAGER='sh -c "col -b | bcat"'

Для git:

export GIT_PAGER=bcat

После этого, когда вы запускаете, например, «man grep» или «git log», фокус переключается на окно браузера, и вывод команд открывается в новой вкладке. Кстати, если в Git включён цветовой вывод, то цвета будут отображаться и в браузере тоже.

Просмотр буфера обмена

Для Linux:

xclip -o -selection c | bcat

Для Mac OS X:

pbpaste | bcat

Markdown

Просмотр Markdown-файла с форматированием:

markdown README.md | bcat

Команды, естественно, можно состыковывать как угодно. Например просмотреть содержимое буфера обмена с Markdown-форматированием можно так (для Linux):

xclip -o -selection c | markdown | bcat

Или так (для Mac OS X)

pbpaste | markdown | bcat

Тестирование шаблона Django

Допустим, в текущей рабочей директории есть шаблон template.html, и вы хотите посмотреть, как он будет отображаться с определённым контекстом.

Создаём файл preview_template.py и запускаем такую команду:

python preview_template.py template.html "{'username': 'Његош'}"

В браузере тут же открывается результат рендеринга шаблона.

Разумеется, это только примеры, а вообще использовать bcat можно для огромного количества разнообразных повседневных задач.

Смотри также



Арсений @MaGIc2laNTern
карма
232,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Администрирование

Комментарии (21)

  • +6
    Что-то не могу никак понять… Зачем?
    Он таки текст в текст перегоняет, или позволяет html в браузер перенаправить?
    • 0
      Ну-у, как предположение, есть только http доступ к серверу, и на порте хостится сайт, можно вот логи на секретную страничку выводить. Да мало ли. Может администратор сайта — не специалист, не умеет/не может по ssh подконнектиться, но посмотреть логи на предмет чего-то ненормального хочет.
    • 0
      на любителя. но смотреть логи в браузере все-таки приятнее, чем в консоли — номальный поиск, подсветка, анализ
      • 0
        А открыть лог в vim и выполнить на содержимом grep в чём беда?:)
        • +2
          В less.
          • 0
            Мой вопрос относился только к этой части фразы:
            в браузере все-таки приятнее, чем в консоли — номальный поиск
            • 0
              эм. в браузере нормальный поиск? Я как-то пытался подружить браузер и поиск по регулярным выражениям и ничего не вышло.
              И чем в vim поиск лучше чем в less? Точнее чем он отличается?
        • 0
          А вдруг нету доступа к серверу по SSH? Или, точнее, круг лиц, кому можно предоставить доступ, уже тех, кто должен иметь доступ к логам.
        • +1
          При разработке веб-приложения имеет смысл видеть все в одном окне — окне браузера. Это значительно удобнее, чем переключаться между окнами.
    • +4
      Ох уж это поколение GUI! Всё у них через браузер!
      • +2
        Мы такие, да. Только через браузер! :)

        • +1
          Google счастлив :)
          • 0
            А у Firefox вроде что-то такое тоже есть. Я сам не пробовал, но какие-то решения попадались.
            • 0
              Да все они вас трэкают…
              • +1
                Не могу с полной уверенностью утверждать обратное, но этот хромовский плагин, в отличие от многих других, не использует промежуточный сервер для туннелирования. То есть, он подключается к SSH серверу напрямую, открывает сокет. Кроме того, исходный код(на JavaScript) открыт, я его сам исследовал, и даже кое-что там правил. Если интересно, код вот он: github.com/macton/hterm/

                Опять же, я не утверждаю, что за нами не следят. :) Скажем, кто сказал, что в Виндоусе нету бэкдоров, или в той же VirtualBox, на которой у меня линуксовая виртуалка хостится? :)
  • 0
    К сожалению не знаю, как в linux, в OS X есть программа — Console. Там логи более чем удобно смотреть.
    • 0
      О! Спасибо, кстати, не знал о такой опции. Надо попробовать.

      У меня обычно iterm2 на весь экран с полупрозрачным фоном. Ну и в нем less какой-нибудь. Смысл в том, что видишь логи, а под ними все остальные окна OS X. Включается/выключается «cmd+enter». Тоже удобно.
  • +1
    Удобная штука. Часто бывает надо подсмотреть опции приложения или при сборке пакета посмотреть флаги у configure. Так выведешь их в консоль потом выполнишь еще несколько команд и инфа по флагам уже уехала далеко вверх. А в браузере такого рода инфу удобней будет сохранять без нужды её искать скроллом. Можно было бы открывать новые вкладки под каждый такой список флагов, но потом была бы путаница где рабочие терминалы, а где доки для справки.
    • 0
      Скажите, Вы правда не слышали про Shift-стрелочки в консоли?
      • 0
        Вы думаете во всех терминальных клиентах работают Shift-стрелочки? :) В штатном маковском клиенте — не работают, если их специально не заточить. Но лень.
        • 0
          Да, я подозревал какую-то похожую беду :) Только описанный в статье способ тоже как-то не выглядит самым коротким. Хотя, на вкус и цвет.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.