пятница, 4 декабря 2009 г.

Monit: сделим за демонами.

Monit — это бесплатное приложение с открытым исходным кодом, обеспечивающее комплексный мониторинг UNIX-like систем.
С его помощью мы можем мониторить:
  • Состояние серверов (доступность, потребление ресурсов).

  • Мониторинг демонов.

  • Мониторинг сетевых сервисов (возможность подключения и корректность ответа).

  • Выполнение встроенных (запуск\остановка\перезапуск) или собственных (скрипты).

  • Уведомление на email или в централизованный web-интерфейс M\Monit.


  • Поддерживаются все unix-like системы: ОС GNU\Linux (есть в большинстве пакетных систем), FreeBSD (есть в портах), OpenBSD, Solaris, MacOS X.

    вторник, 1 декабря 2009 г.

    Критическая локальная уязвимость во FreeBSD 7.1, 7.2, 8.0

    Сегодня было опубликовано сообщение об уязвимости, позволяющей повысить пользовательские привилегии в последних версиях ОС FreeBSD (7.1-8.0).

    Испытал у себя.

    пятница, 27 ноября 2009 г.

    Make love, not war

    Сколько живи и все равно, что то будет удивлять и радовать в этом мире :)
    Впервые узнал о этом пасхальном яйце во FreeBSD:

    понедельник, 23 ноября 2009 г.

    FreeBSD 8.0-RELEASE

    FreeBSD



    На оффсайте еще нет новости. Видимо жду пока iso синхронизируют со всеми зеркалами.

    На русском ftp уже доступен образ.

    А мы тем временем делаем freebsd-update:

    четверг, 19 ноября 2009 г.

    Upgrade to FreeBSD 8.0-RC3

    Быстренькое обновление:
    freebsd-update -r 8.0-RC3 upgrade
    freebsd-update install
    reboot
    freebsd-update install
    uname -a
    FreeBSD hostname 8.0-RC3 FreeBSD 8.0-RC3 #0: Tue Nov 10 07:50:36 UTC 2009
    root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386


    p.s. пишут, что бывает после загрузки не видит загрузчик, то прийдется прописать /boot/loader.
    У меня все загрузилось но не увидело сетевую, перегрузился и все нормально. Магия ^_^

    вторник, 17 ноября 2009 г.

    Subversion and "/!svn/vcc/default" errors

    Интересная ошибка появилась при обновлении проекта из svn.

    svn: REPORT request failed on '/project/!svn/vcc/default' svn: REPORT of '/project/!svn/vcc/default': 200
    OK


    В логе апача вроде бы все ок:
    [17/Nov/2009:12:52:54 +0200] "REPORT /project/!svn/vcc/default HTTP/1.1" 200 5317743 "-" "SVN/1.6.0
    (r36650)/TortoiseSVN-1.6.0.15855 neon/0.28.4"


    Полазил по разным логам, поглядел и увидел в логе nginx вот такую забавную строчку
    2009/11/17 12:40:49 [crit] 35114#0: *11449 open() "/var/tmp/nginx/proxy_temp/6/13/0000000136" failed (13:
    Permission denied) while reading upstream, client: 192.168.1.14, server: svn.com, request: "REPORT
    /project/!svn/vcc/default HTTP/1.1", upstream: "http://127.0.0.1:81/project/!svn/vcc/default", host: "svn.com"


    Nginx не может нормально работать с временной директорией, вот и отлично делаем ему rm -rf /var/tmp/nginx/proxy_temp/* и перезапускаем nginx.
    Все проблема решена.

    понедельник, 16 ноября 2009 г.

    Просмотр конфигурационных файлов без комментариев и пустых строк

    cat /usr/src/sys/i386/conf/GENERIC | grep -v '^#' | sed '/^$/d' | more 


    via wiki

    NIC.ua раздает подарки

    C 15.11.2009 по 28.02.2010 регистратор NIC.UA проводит рекламную кампанию с ежедневным розыгрышем призов среди пользователей социальной сети Twitter.com.
    Для того что бы получить призы нужно зафолловить @nic_ua и написать сообщение, содержащее текст «#nicua», «http://rt.nic.ua», «http://nic.ua» ретвитнуть @nic_ua.
    Подробнее у них на сайте.

    з.ы. Нет мне платят за рекламу :). Просто захотелось написать.

    пятница, 16 октября 2009 г.

    mp4: Перенос метаданных в начало видео

    Столкнулись с интересным моментом, при конвертации видео при помощи ffmpeg в mp4: метаданные помещаются в конец файла.
    При стиминге с помощью nginx'a нам это не мешало. А вот как решили обзавестись CDN от Edgecast видео начало воспроизводиться после полной загрузки.
    Решение было найдено быстро: qt-faststart из пакета ffmpeg.

    Т.к. я собирал ffmpeg из svn, то сборка будет выглядеть так:
    cd /.../ffmpeg/

    gmake tools/qt-faststart

    cp tools/qt-faststart /usr/local/bin/


    Используем так:
    qt-faststart /path/to/oldName.mp4 /path/to/newName.mp4


    p.s. ох уж этот edgecast :)

    четверг, 8 октября 2009 г.

    Синхронизация по FTP

    Что делать, когда нужно синхронизировать директории между серверами, а rsync'a нет?
    Приходится использовать FTP и хорошо, что есть один замечательный клиент - lftp.

    Ставим lftp:
    cd /usr/ports/ftp/lftp/
    make install clean

    вторник, 6 октября 2009 г.

    Rsync ограничение скорости

    Что значит иногда хорошо читать документацию.
    Нужно было засинхронизировать 150Gb, а канал в офисе один, а мешать людям смотреть youtube работать не хорошо.
    Но флаг --bwlimit=KBPS спасает всех :)

    rsync -lzuogthvr --compress-level=9 --progress --bwlimit=100


    Перевод доки по rsync'у

    понедельник, 5 октября 2009 г.

    Backup google docs

    Понадобилось сохранять копии документов хранящиеся в google docs.
    Так как экспортировать много документов в doc он не умеет, умельцы написали плагин для Firefox Greasemonkey. Но мы то лентяя, да и память может подводить, что б постоянно бакапить вручную. Нашел один скрипт на питоне GDD python script. Который запускается из командной строки и соответственно может быть поставлен в cron.

    суббота, 26 сентября 2009 г.

    Dell inspiron 1525 with Mac OS X 10.6 Retail

    Получил добро на установку правильной оси на ноутбук девушки :)
    Что быстренько и провернул, пока не передумала.
    Для этого нам понадобятся:
    Установочный диск с Mac OS X 10.6 Retail (я брал на пиратах)
    Загрузочный диск, качаем тут (BootSL.iso)

    Если пациент готов, поехали:

    четверг, 24 сентября 2009 г.

    SPF Record for Google Apps

    Всем известно, что почта от гугл лучше любой. Это и хорошая защита от спама и 99.9% uptime.
    Но что же делать, когда нужно отправлять письма с сервера и подставлять домен, тот что зарегистрирован на google apps mail?
    Использовать ssmtp c авторизацией у гугловых smtp не выход, потому что стоит ограничение в 500 отправленных писем в сутки для аккаунта.

    Выход это настроить Sender Policy Framework запись которой разрешает определенным серверам отправлять e-mail с этим доменом.

    Для сервера чью DNS запись мы редактируем нужно добавить TXT record:
    v=spf1 include:aspmx.googlemail.com ~all

    Доверенным хостом станет тот, что прописан в A записе.
    Если у нас еще доверенные хосты, нужно указать их ip адрес:
    v=spf1 ip4:111.111.111.111 include=_spf.google.com ~all

    понедельник, 7 сентября 2009 г.

    Time Machine и FreeNAS

    Есть у нас файлопомойка на FreeNAS и захотелось мне бакапить свою машинку с помощью Time Machine.

    Для этого нам понадобиться:

    1. Расшарить папку с помощью AFP

    2. Создать пользователя, что авторизации

    3. Создать "sparsebundle" с помощью команды

    4. hdiutil create -size [Размер]g -fs HFS+J -volname "Backup of server" [hostname]_[mac-address].sparsebundle 

      где [размер] - это размер диска на который будет делаться резервная копи
      [hostname] - имя вашего mac'a
      [mac-address] - мак адрес сетевого интерфейса, который можно посмотреть "Системные настройки" - "Сеть" - "Дополнительно" - "Ethernet" - Идентификатор Ethernet или выполнить команду

    понедельник, 31 августа 2009 г.

    Исключаем из лога apache запросы

    Вообщем обновление одного запроса может быть раз в 1сек, и мне он не особо важен в логе, поэтому я его исключаю для чистоты лога :)

    Добавляем в конфиге виртуального хоста:

    SetEnvIf Request_URI /toolbar/chat/$ nolog #сообственно сам запрос
    SetEnvIf Request_URI /update_online_status/$ nolog

    И в конец лога добавим env=!nolog

    CustomLog "/usr/local/www/logs/filmnettrio.com-access.log" combined env=!nolog

    Вот и все.

    среда, 29 июля 2009 г.

    ffmpeg из SVN

    Понадобилось на сервере поставить свежий ffmpeg. В портах он уж явно старый. Поэтому выкачали из svn
    svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

    Далее 
    ./configure --disable-devices --disable-ipv6 --enable-nonfree --enable-libx264 --enable-libfaac --enable-gpl --enable-pthreads --extra-cflags=-DBROKEN_RELOCATIONS --extra-cflags=-I/usr/local/include --extra-libs=-L/usr/local/lib
    gmake
    gmake install

    Все пользуемся новым ffmpeg

    понедельник, 6 июля 2009 г.

    Массовое переименование файлов с помощью утилиты find

    #!/bin/sh

    # Определяем глубину вложенности директорий
    depth=$((`find "$1" -type d -print | \
          sed -E 's/[^\/]+//g' | \
          sort | tail -n 1 | \
          wc -c`+1));
    # Макрос, переименовывающий файлы и директории
    replacer='new="`dirname "{}"`/`basename "{}" | sed "s/ /_/g"`"; if [ "$new" != "{}" ]; then mv "{}" "$new"; fi;';
    # Обходим все уровни вложенности
    while [ $depth -ge 0 ];
    do
        # Находим и заменяем 
        find "$1" -depth $depth -and -name '* *' -print -exec sh -c "$replacer" \;
        # Меняем уровень вложенности
        depth=$(($depth-1));
    done;