Записи с тэгом ‘Linux’

SS-кунфу

Thursday, April 3rd, 2014

– Вы откроете ворота?
– Откроем, когда вы уедете.

Дж. Р. Р. Мартин «Танец с драконами»

ss-kungfu

Нет, речь пойдёт не о Schutzstaffel, как можно было подумать, посмотрев на картинку и название поста, а о консольной утилите GNU ss для получения статистики по сетевым (TCP, UDP, DCCP) и unix-сокетам. В общем то, ss и расшифровывается как "socket statistics". Входит она в пакет iproute, то есть присутствует в принципе во всех Linux-дистрибутивах, но несмотря на это не пользуется большой популярностью – подавляющее большинство использует более известную утилиту netstat.

Надо добиться небольшой кармической справедливости и заняться популяризацией ss (как бы двусмысленно это всё-таки ни звучало).

Итак, что мы можем получить.

(more…)

Метки: ,
Категория: Linux | Нет комментариев »


Три способа по-быстрому поднять forward proxy

Friday, January 24th, 2014

У них, милсдарь ведьмак, такой принцип: если цель привлекает, средство должно найтись.

Анджей Сапковский «Владычица озера»

3ways

Forward proxy – это (обычно) анонимный прокси, к которому клиент обращается и сообщает адрес хоста, к которому он хочет подключиться.

При обращении на такой прокси браузер особым образом формирует запросы. В случае обычного HTTP протокола он просто добавляет обязательный заголовок Host:, а сам URL в запросе формирует в абсолютном виде. В этом случае принципиальной разницы с reverse proxy нет. Но при обращении на HTTPS или любой нестандартный порт происходит установление сквозного туннеля  с целевым сервером с помощью метода CONNECT, отправляемого на прокси. Прокси при этом использует заголовки этого запроса для установления соединения, но не может ни ловить сессионные SSL-ключи, ни тем более смотреть проходящий трафик.

Работать в режиме forward proxy могут многие серверы, но не все. Тот же Nginx, например, хоть и считается одним из лучших reverse proxy, категорически не работает как forward и вообще не умеет обрабатывать метод CONNECT. Поэтому я по-быстрому рассмотрю Apache TrafficServer, Apache/mod_proxy и Squid. Плюс задача будет усложнена условием, чтобы прокси-сервер пропускал только трафик, идущий на определённый домен и его суб-домены, и не все серверы с этим справятся (по крайней мере "по-быстрому").

(more…)

Метки: ,
Категория: Linux | Нет комментариев »


Перезагрузка HAProxy и потеря запросов

Thursday, November 7th, 2013

В другой витрине толстяк в фартуке мясника резал младенцев. Это была наглядная пропаганда общественной благотворительности.

Борис Виан «Пена дней»

lost

Разбирая странные ошибки фронтенда, возникновение которых удивительным образом коррелирует с моментами, когда я произвожу перезагрузку HAProxy (service haproxy reload), я выяснил, эта самая перезагрузка работает совсем не так, как я думал. Вопреки ожиданием при перезагрузке процесс вовсе не перечитывает конфигурационные файлы и продолжает работать дальше. На самом деле порождается новый процесс haproxy с новым pid'ом. Он через unix-сокет забирает у старого процесса все сессионные данные и просит того освободить порт и умереть. Дождавшись освобождения порта, он биндится на него и как ни в чём не бывало продолжает принимать новые соединения и обслуживать старые. Но…

(more…)

Метки: , ,
Категория: HAProxy, Linux | Нет комментариев »


Подсветка синтаксиса в командной строке

Wednesday, October 30th, 2013

Мудрость – это, в частности, умение пропускать мимо ушей глупые или неискренние советы.

Анджей Сапковский «Меч Предназначения»

source-higlight

Подсветка синтаксиса в том же Vim'е – дело привычное и полезное. Но ещё было бы полезно получить такую же раскраску и в обычном стандартном выводе в консоли. Её можно было смотреть прямо так или подать на вход less'у, не важно. И таких способов существует несколько.

 

(more…)

Метки:
Категория: Linux | Нет комментариев »


Хэши в AWK

Thursday, February 28th, 2013

Ох, и не люблю же я плотников! Ну, совсем не люблю. И дерева пиленого запах, и стружки, а уж если смолой потянуло! И удивительного в том нет ничего – кто эшафоты строит, скажите на милость? А виселицы из чего срублены?

Андрей Валентинов «Ола»

AWK я люблю и уважаю, хоть и пользуюсь его возможностями максимум на 1,5%. Когда же я понял, что он умеет работать с ассоциативными массивами, это число резко выросло до 1,86%. До awk-гуру рукой подать.

Допустим мы выбрали из access.log ip-адреса пользователей и размеры ответов и хотим подсчитать, кто сколько раз к нам сходил (это просто) и сколько трафика суммарно высосал (это интереснее). Допустим, сырой файл выглядит так:

(more…)

Метки:
Категория: Linux | 1 Комментарий »


vsftpd: лицом к лицу с “500 OOPS: vsftpd: refusing to run with writable root inside chroot ()”

Friday, November 2nd, 2012

Мы ведь не дети и отлично понимаем, что сила современной философии не в силлогизмах, а в авиационной поддержке.

Виктор Пелевин «S.N.U.F.F.»

Предыстория такова, что разработчики 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 | 17 Комментариев »


Мониторинг LSI MegaRAID

Tuesday, September 11th, 2012

Бог мой, надо что-то предпринять… Но я уже в пижаме.

м/ф «Футурама»

Если речь идёт о дисковом массиве, то обычно приходится мониторить не сам массив и не контроллер, а состояние дисков в массиве. Там они могут тихо и незаметно умирать, отъедая HSP и постепенно оставляя нас у разбитого корыта. Для мониторинга состояния дисков в рейде LSI MegaRAID используется утилита MegaCLI от LSI. На офсайте для скачивания сейчас требуют регистрацию, но на просторах интернета за пару минут гугления можно найти что угодно. Нас интересует 8.01.06_Linux_MegaCLI.zip.

Версию можно брать и постарше. А для ядра Linux версии 3 утилита этой версии может не заработать, так что искать более новую придётся обязательно.
(more…)

Метки: , ,
Категория: Linux | 1 Комментарий »


Доступ к EXIF из командной строки

Saturday, July 21st, 2012


Столкнулся я в очередной раз с некоторым неудобством просмотра фотографий с одного события, но с разных камер. Хочется смотреть всё в хронологическом порядке, но все фотографии имеют разные названия и разные порядки нумерации. Даже даты модификации файлов давно неактуальны из-за копирований и редактирований. В этот раз, однако, с проблемой я не смирился, а решил найти ей решение. Первое, что пришло в голову, – это изменить названия файлов, вставив в их начале либо некоторый порядковый номер, либо вообще просто дату снимка. Задача проста и её решение видится в простом bash-однострочнике. Оставалось выяснить, как в командной строке выцепить из EXIF файлов дату снимка. И тут я наткнулся на прекрасную программу jhead (есть в репозиториях).
(more…)

Метки:
Категория: 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 есть здесь.

В целом, шаги будут выглядеть следующим образом:

(more…)

Метки: ,
Категория: Linux | 1 Комментарий »


Gnome-Terminal: имя закладки при ssh-сессии

Thursday, February 3rd, 2011

Gnome-terminal tab title after ssh loginСодержание этой заметки будет ненамного больше её заголовка. Итак, замеченная мною проблема заключается в том, что 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 | Нет комментариев »