Записи с тэгом ‘Linux’
SS-кунфу
Thursday, April 3rd, 2014
– Откроем, когда вы уедете.
Нет, речь пойдёт не о Schutzstaffel, как можно было подумать, посмотрев на картинку и название поста, а о консольной утилите GNU ss для получения статистики по сетевым (TCP, UDP, DCCP) и unix-сокетам. В общем то, ss и расшифровывается как "socket statistics". Входит она в пакет iproute, то есть присутствует в принципе во всех Linux-дистрибутивах, но несмотря на это не пользуется большой популярностью – подавляющее большинство использует более известную утилиту netstat.
Надо добиться небольшой кармической справедливости и заняться популяризацией ss (как бы двусмысленно это всё-таки ни звучало).
Итак, что мы можем получить.
Метки: KungFu, Linux
Категория: Linux | Нет комментариев »
Три способа по-быстрому поднять forward proxy
Friday, January 24th, 2014
Forward proxy – это (обычно) анонимный прокси, к которому клиент обращается и сообщает адрес хоста, к которому он хочет подключиться.
При обращении на такой прокси браузер особым образом формирует запросы. В случае обычного HTTP протокола он просто добавляет обязательный заголовок Host:, а сам URL в запросе формирует в абсолютном виде. В этом случае принципиальной разницы с reverse proxy нет. Но при обращении на HTTPS или любой нестандартный порт происходит установление сквозного туннеля с целевым сервером с помощью метода CONNECT, отправляемого на прокси. Прокси при этом использует заголовки этого запроса для установления соединения, но не может ни ловить сессионные SSL-ключи, ни тем более смотреть проходящий трафик.
Работать в режиме forward proxy могут многие серверы, но не все. Тот же Nginx, например, хоть и считается одним из лучших reverse proxy, категорически не работает как forward и вообще не умеет обрабатывать метод CONNECT. Поэтому я по-быстрому рассмотрю Apache TrafficServer, Apache/mod_proxy и Squid. Плюс задача будет усложнена условием, чтобы прокси-сервер пропускал только трафик, идущий на определённый домен и его суб-домены, и не все серверы с этим справятся (по крайней мере "по-быстрому").
Метки: Apache, Linux
Категория: Linux | Нет комментариев »
Перезагрузка HAProxy и потеря запросов
Thursday, November 7th, 2013
Разбирая странные ошибки фронтенда, возникновение которых удивительным образом коррелирует с моментами, когда я произвожу перезагрузку HAProxy (service haproxy reload), я выяснил, эта самая перезагрузка работает совсем не так, как я думал. Вопреки ожиданием при перезагрузке процесс вовсе не перечитывает конфигурационные файлы и продолжает работать дальше. На самом деле порождается новый процесс haproxy с новым pid'ом. Он через unix-сокет забирает у старого процесса все сессионные данные и просит того освободить порт и умереть. Дождавшись освобождения порта, он биндится на него и как ни в чём не бывало продолжает принимать новые соединения и обслуживать старые. Но…
Метки: HAProxy, iptables, Linux
Категория: HAProxy, Linux | Нет комментариев »
Подсветка синтаксиса в командной строке
Wednesday, October 30th, 2013
Подсветка синтаксиса в том же Vim'е – дело привычное и полезное. Но ещё было бы полезно получить такую же раскраску и в обычном стандартном выводе в консоли. Её можно было смотреть прямо так или подать на вход less'у, не важно. И таких способов существует несколько.
Метки: Linux
Категория: Linux | Нет комментариев »
Хэши в AWK
Thursday, February 28th, 2013
AWK я люблю и уважаю, хоть и пользуюсь его возможностями максимум на 1,5%. Когда же я понял, что он умеет работать с ассоциативными массивами, это число резко выросло до 1,86%. До awk-гуру рукой подать.
Допустим мы выбрали из access.log ip-адреса пользователей и размеры ответов и хотим подсчитать, кто сколько раз к нам сходил (это просто) и сколько трафика суммарно высосал (это интереснее). Допустим, сырой файл выглядит так:
Метки: Linux
Категория: Linux | 1 Комментарий »
vsftpd: лицом к лицу с “500 OOPS: vsftpd: refusing to run with writable root inside chroot ()”
Friday, November 2nd, 2012
Предыстория такова, что разработчики vsftpd (точнее её единственный разработчик под названием Крис Эванс) здраво рассудили, что ради безопасности надо бы запретить пользователям запись в корень своего chroot’а. То есть если пользователь по ftp chroot’ится в свою домашнюю директорию, то не пускать его в том случае, если у него есть права на запись в неё (можно писать только в поддиректории). Сказано-сделано. Выкатили версию 2.3.5 с этим изменением, а майнтайнеры репозиториев Ubuntu взяли, да и собрали эту версию в репы для 12.04 LTS. Оказалось, что после обновления у многих людей (у тех 99,9999% людей, которые не читают changelog’и) вдруг сломался доступ по ftp. И это при том, что не у всех ситуация позволяет просто так взять и отобрать права на запись в домашние директории. В общем всё это привело к тому, что на бедного Криса со всех уголков интернета полились ушаты говна, отчего он запилил версию vsftpd 3.0, куда добавил опцию конфига allow_writeable_chroot, возвращающую старое-доброе небезопасное поведение. Запилить-то запилил, но майнтайнеры Убунты заявлили, что собирать эту версию для своей 12.04 уже не будут и просто умыли руки.
В общем, решайте проблемы как хотите.
(more…)
Метки: Linux, Ubuntu, vsftpd
Категория: Linux | 17 Комментариев »
Мониторинг LSI MegaRAID
Tuesday, September 11th, 2012
Если речь идёт о дисковом массиве, то обычно приходится мониторить не сам массив и не контроллер, а состояние дисков в массиве. Там они могут тихо и незаметно умирать, отъедая HSP и постепенно оставляя нас у разбитого корыта. Для мониторинга состояния дисков в рейде LSI MegaRAID используется утилита MegaCLI от LSI. На офсайте для скачивания сейчас требуют регистрацию, но на просторах интернета за пару минут гугления можно найти что угодно. Нас интересует 8.01.06_Linux_MegaCLI.zip.
Версию можно брать и постарше. А для ядра Linux версии 3 утилита этой версии может не заработать, так что искать более новую придётся обязательно.
(more…)
Метки: Linux, Nagios, Perl
Категория: Linux | 1 Комментарий »
Доступ к EXIF из командной строки
Saturday, July 21st, 2012
Столкнулся я в очередной раз с некоторым неудобством просмотра фотографий с одного события, но с разных камер. Хочется смотреть всё в хронологическом порядке, но все фотографии имеют разные названия и разные порядки нумерации. Даже даты модификации файлов давно неактуальны из-за копирований и редактирований. В этот раз, однако, с проблемой я не смирился, а решил найти ей решение. Первое, что пришло в голову, – это изменить названия файлов, вставив в их начале либо некоторый порядковый номер, либо вообще просто дату снимка. Задача проста и её решение видится в простом bash-однострочнике. Оставалось выяснить, как в командной строке выцепить из EXIF файлов дату снимка. И тут я наткнулся на прекрасную программу jhead (есть в репозиториях).
(more…)
Метки: Linux
Категория: Linux | 1 Комментарий »
Subversion: уведомления о коммитах в определённую ветку
Thursday, June 2nd, 2011
— Да.
— Вы не хотите прочитать его? Там может быть что-то важное.
— Да, последние два тоже были важными. Первое было от моей жены, она сообщала, что уходит от меня. Второе было от моего адвоката, он сказал, что уходит от меня… с моей женой.
— Эхехе, не повезло! Но как считал дедушка, за дождливым днём придёт ясный. Это добрая весть. А да, спорим на ужин.
— Ладно.
— Вы уволены?!! Вот жалость…
Для реализации сабжа нам понадобится скрипт mailer.py, который можно раздобыть либо из репозиториев вместе с пакетом subversion-tools, либо скачать с офсайта:
http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/mailer/mailer.py
http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/mailer/mailer.conf.example
Само собой, понадобится и интерпретатор Python.
Здесь рассмотрю только конкретную задачу. Полная документация по svnmailer есть здесь.
В целом, шаги будут выглядеть следующим образом:
Метки: Linux, SVN
Категория: Linux | 1 Комментарий »
Gnome-Terminal: имя закладки при ssh-сессии
Thursday, February 3rd, 2011
Содержание этой заметки будет ненамного больше её заголовка. Итак, замеченная мною проблема заключается в том, что gnome-terminal после логина по ssh не всегда меняет заголовок закладки на удобное и привычное username@hostname:/current/path, что чрезвычайно удобно при открытии нескольких вкладок на разные хосты. Также я обратил внимание на то, что проблема проявляется при логине на хосты с Debian, Ubuntu и SuSe и не проявляется при логине на RHEL и CentOS. Отсюда следует, что проблема заключается в гостевой ОС. И действительно, оказалось, что при работе в xterm, для названия закладки gnome-terminal берёт значение переменной PROMPT_COMMAND. На RH-like дистрибутивах эта переменная устанавливается в /etc/bashrc, а на прочих Убунтах в /etc/bash.bashrc она почему-то закомментирована.
Так что раскомментируем (и правим по собственному желанию и вкусам) строчку и наслаждаемся дальше работой с gnome-terminal:
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
Метки: Gnome, Linux, SSH
Категория: Gnome, Linux | Нет комментариев »