Показаны сообщения с ярлыком консоль. Показать все сообщения
Показаны сообщения с ярлыком консоль. Показать все сообщения

Отслеживание HTTP-взаимодействия с помощью tcpdump

Иногда нужно в консоли посмотреть, что происходит с запросами на веб-сервер, правильные ли приходят запросы, нормальные ли уходят ответы, если вообще уходят. Для таких целей есть утилита tcpdump, но она больше для работы с уровнем TCP/IP,  а для получения данных о запросах HTTP,- приходится применять определённые ключи и фильтры. Я делаю вот так:

tcpdump -i eth0 -nA -s 0 '(((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' and port 80

Graphite: просмотр файлов Whisper (.wsp) в консоли и в Midnight Commander


Настраиваем просмотр файлов данных Wisper (Graphite) в консоли в несколько простых шагов:

  1. Найти в системе whisper-fetch.py. Если установлена свежая версия пакета Graphite,- скорее всего такой файл уже есть в /opt/graphite (или в другом месте, если при установки использовался путь не по умолчанию):

    $ find / -name whisper-fetch.py
    

Namei: Почему в nginx permission denied?

Почему в Nginx error.log появляются записи вида open() ... failed (13: Permission denied)? Вообще, речь конечно не про Nginx как таковой. Ситуация, когда в *nix-системе доступ запрещён по непонятной причине, хотя у файла или папки "всевсевсе" права rwxrwxrwx (777 в числовом выражении), бывает с любым процессом. В таком случае нужно не биться головой о стену, а вспомнить, что у любого процесса для доступа к любому файлу, помимо прав на чтение (или запись), должны быть права на переход в каждую папку начиная от корня. 

Mac OS X: примонтировать диск dmg в терминале

Задался вопросом,- возможно ли примонтировать образ диска dmg в командной строке Mac OS X? Это может быть нужно, например, в случае удалённого подключения по ssh. Короткий ответ: возможно :-).

В этом поможет команда hdiutil. С параметром attach просим подключить диск, система проверяет образ и сообщает путь монтирования вида /Volumes/<имя диска>


$ hdiutil attach <полный путь к файлу образа>
expected   CRC32 $6FBC93B9
/dev/disk2                                         /Volumes/<имя диска>

Отключить (размонтировать) можно той-же командой и параметром detach, только вместо пути к образу диска указываем уже путь монтирования, который нам вернул hdiutil attach:

$ hdiutil detach Volumes/<имя диска>

Графитовые графики в консоли


Случайно наткнулся на чудесный консольный скрипт,- spark умеет в консоли псевдографикой рисовать некое подобие картинки из входных значений. Примерно так, как на изображении, ага. Красота.


А ещё волшебным образом можно показать статистику из Graphite, например так:

$ curl -s "https://graphite/render/?target=metric.foo&from=-30min&format=json" | \
python -mjson.tool | grep ',' | grep -v '\]' | spark
▂▅▇▃▆▆▅▇▂▁▂▁▂▁▁▅▇▃▃▃▂▂▂▁▂▂▃▁▂▃▁▁▁▂▃▅▂▁▂▂▃▃▃▂▆▃

Про Graphite написал отдельно, а ещё на сладкое аглоязычная годная серия статей про работу с Graphite, пример вывода в spark подсмотрел там.

Ctrl-S и vi


У системных администраторов и программистов бывают плохие привычки. Одна из таких привычек,- работать попеременно в разных редакторах, например в редакторе mc и vi в консоли, да ещё и в Notepad++, к примеру. Сам по себе факт работы в разных редакторах ни плох, ни хорош, но вот следствия бывают не очень приятными. Например, привычные сочетания клавиш под разными системами могут приводить к разной реакции. Одно из таких комбинаций CTRL+S. Во множестве десктопных редакторов, в особенности в Windows, такое сочетание зарезервировано для сохранения текущего документа, в редакторе mc это же самое сочетание клавиш включает и выключает подсветку кода.

А вот при работе по ssh в терминальном окне Putty это сочетание клавиш приводит к зависанию сессии. Ну, то есть, множество раз мне казалось, что сессия зависла и приходилось попросту подключаться заново к серверу, пока я не решил разобраться.

Оказалось, что на самом деле CTRL+S включает режим XOFF, в котором терминал принимает нажатия клавиш, но не выводит в ответ ничего. Визуально кажется, что сессия умерла, но это не так. А если есть режим XOFF, то есть режим XON. Режим XON включается обратно при помощи CTRL+Q.

Вот так-то.