Автор: reaper

  • smartctl и HP SmartArray P410

    Впервые столкнулся с контроллером, который обслуживается драйвером hpsa. Пришлось помучиться с доступом к информации о состоянии дисков. В итоге оказалось, что к дискам нужно обращаться следующим образом:

    smartctl -a /dev/sda -d sat+cciss,Х
  • LZO в bacula

    В bacula 5.2 добавили метод сжатия LZO, скорость бэкапа с одного из серверов возросла с 50 Мбит/с до 320 Мбит/с. Просто прекрасно 🙂

  • redmine и плагин redmine_gitosis

    Обновил недавно redmine с 1.3 до 1.4.4, что поломало загрузку ключей в плагин с ошибкой

    NameError (uninitialized constant GitosisPublicKeysController::ARCondition):

    Выяснилось, что из redmine убрали нужную библиотечку, чтобы ее вернуть, достаточно положить файлик ar_condition.rb в redmine/lib. Взять файлик можно, например, отсюда.

  • Старый знакомый

    Отловил сегодня баг, который меня беспокоил, наверное, 2 или больше года назад.

    Предыстория такова: один из пользователей постоянно говорил, что его учетка блокируется ни с того, ни с сего. Причин тогда выяснить так и не удалось, списали все на вирусы, поставили ему политику блокировки достаточно лояльную к такому поведению и он успокоился. Я про эту проблему тоже подзабыл.

    Недавно у некоторых пользователей на Windows 7 начали проявляться странные симптомы на компьютерах, не получалось входить на сетевые шары, не подключались сетевые диски и тому подобное. Как выяснилось, шары и диски были подключены через DFS. После нескольких попыток разобраться с DFS, починить DNS и прочее, выяснилось, что виновато RAS-подключение, через которое пользователю выдается интернет. Стоит его отключить, как все магическим образом начинает работать. После этого поиск ошибки стал делом техники, выяснилось, что при подключении к впн, Windows пытается пользоваться именно этой парой логин-пароль для авторизации (не знаю зачем это было добавлено). Отключается элементарно в файле, который отвечает за подключение, нужно заменить 1 в параметре UseRasCredentials на 0. Файл находится либо в профиле пользователя в каталоге %AppData%\Microsoft\Network\Connections\Pbk, либо в каталоге %ProgramData%\Microsoft\Network\Connections\Pbk

    После этого мне в голову закрались смутные подозрения и я попробовал вернуть политику блокировки в первоначальное состояние. При подключенном RAS-соединении попытка зайти на DFS шару тут же вызвала блокировку учетной записи. Вот он, старый знакомый.

  • Убираем /index.php в nginx

    У меня есть сайтик, где главная страничка статическая, а весь динамический контент генерируется через index.php, на нем потребовалось, чтобы не дублировались страницы /index.php, /index.html и /. Вот как это сделать в nginx

    location ~ ^/index.(html|php)$ {
      if ($request_uri ~ ^/index.(html|php)) {
        rewrite ^.*$ / permanent;
      }
    }

    Теперь запросы на /index.html и /index.php будут давать 301 редирект на корень сайта, а сам сайт целиком будет работать как и прежде.

  • Squid и куча адресов

    Некоторое время назад потребовалось поднять прокси на нескольких адресах, для этого я использовал программу proxy из комплекта 3proxy:

    proxy -iIP -eIP -l/dev/null -d -p3128

    Увы, когда адресов становится чуть больше чем несколько, это начинает утомлять своей избыточностью и кучей процессов. Поэтому было решено заменить кучу этих proxy на старый добрый squid. Ставится он из репозитория дистрибутива без всяких заморочек, поэтому опишу только конфигурацию.

    acl all src all
    http_access allow all
    http_port 3128
    access_log none
    cache_store_log none
    maximum_object_size 0 KB
    minimum_object_size 0 KB
    no_cache deny all
    cache_dir null /tmp
    forwarded_for off

    Отключаем какой-либо контроль за входящими соединениями (их я фильтрую в iptables/ipset), логи, кеширование. Затем добавляем контроль заголовков:

    # Header control
    header_access Allow allow all
    header_access Authorization allow all
    header_access Cache-Control allow all
    header_access Content-Encoding allow all
    header_access Content-Length allow all
    header_access Content-Type allow all
    header_access Date allow all
    header_access Expires allow all
    header_access Host allow all
    header_access If-Modified-Since allow all
    header_access Last-Modified allow all
    header_access Location allow all
    header_access Pragma allow all
    header_access Accept allow all
    header_access Accept-Encoding allow all
    header_access Accept-Language allow all
    header_access Accept-Charset allow all
    header_access Content-Language allow all
    header_access Mime-Version allow all
    header_access Cookie allow all
    header_access Set_Cookie allow all
    header_access Retry-After allow all
    header_access Title allow all
    header_access Connection allow all
    header_access Proxy-Connection allow all
    header_access Proxy-Authorization allow all
    header_access Proxy-Authenticate allow all
    header_access WWW-Authenticate allow all
    header_access User-Agent allow all
    header_access All deny all

    Теперь ничего кроме заголовков, у которых указано allow за прокси не уйдет. X-Forwarded-For тоже отключен. Далее добавляем «магию» для IP-адресов:

    acl ip1 myip 10.0.0.1
    tcp_outgoing_address 10.0.0.1 ip1
    acl ip2 myip 10.0.0.2
    tcp_outgoing_address 10.0.0.2 ip2
    acl ip3 myip 10.0.0.3
    tcp_outgoing_address 10.0.0.3 ip3

    Все, теперь все запросы, пришедшие на какой-то адрес, прокси будет отправлять с этого же адреса, что и требовалось.

  • HW RAID в Debian

    Обнаружил полезный для владельцев железных рейд-контроллеров репозиторий Debian/Ubuntu, который так и называется HWraid.

    Подключается оч. просто, например, для Squeeze нужно добавить в /etc/apt/sources.list:

    deb http://hwraid.le-vert.net/debian squeeze main

    Ключ для подписи, увы, авторы не прилагают, т.ч. просто используем -y —force-yes при установке пакета.

  • Кое-где еще середина XX века

    Заказал недавно для друга прикуриватель в автомобиль у китайцев, сегодня получил. Забавно выглядит флаг германии 🙂

    прикуриватель

  • query string и rewrite в nginx

    На одном из сайтов потребовалось сделать 301 редирект всех URL на индекс, я прописал в конфиг вот такую конструкцию:

    if ( !-e $request_filename ) {
      rewrite ^.*$ / permanent;
    }

    Увы, URL, к которым добавлялись какие-то параметры типа http://example.com/url1?test=1 редиректились не совсем правильно: http://example.com/?test=1. Оказалось, чтобы этого избежать, подправить нужно совсем чуть-чуть:

    if ( !-e $request_filename ) {
      rewrite ^.*$ /? permanent;
    }

    И все, редирект теперь срабатывает на http://example.com/

  • Sony Ericsson j108i (cedar) как модем

    Смотрю, ищут подобный вопрос достаточно активно. На самом деле, проблем с этим никаких. Вот что надо сделать.

    1. Подключаем телефон к компьютеру. (Для пользователей Windows 7 есть инструкция)
    2. Запускаем PC Companion, выбираем приложение «Подключение к интернету»
    3. Жмем в нем кнопку «Подключить» и через несколько секунд связь будет установлена