понедельник, 21 февраля 2011 г.

Слава Роботам! лезет в ТОП

Удивительно, но мониторинг поисковых запросов показывает, что ссылки на этот блог очень неплохо индексируются. Первая страница по все более неожиданным запросам. Так рано или поздно и "Чак Норрис" даст эффект. А все это говорит лишь об одном, что самое правильное - это верить в себя и просто делать. Делать, делать, делать - что-нибудь, да получится.

воскресенье, 13 февраля 2011 г.

Мониторинг директорий в linux с использованием inotify: все выше и выше

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

Пришлось доточить до приличного состояния. Перво-наперво обнаружил глюк с зомбями, которые стали собираться в толпы после каждого вызова. Добавил wait(), это решило проблему.

Затем, добавил опции командной строки, мониторинг с использованием флагов и фильтрацию по маске или регулярному выражению. Для этого погрузился в документацию по glibc.

Результат:
kilork@pantogan:~/projects/notify$ ./inotify -?
Usage: inotify [OPTION...] CMD DIR1 [DIR2 ... DIRN]
inotify - simple file monitoring utility

  -s, --silent               Don't produce any output (no effect to
                             subprogramms)
  -v, --verbose              Produce verbose output
  -f, --filter=FILTER        Filter FILTER input on certain files
  -i, --ignore               Ignore case where possible
  -r, --regular              Filter use regular expression expansion
  -w, --wildcard             Filter use wildcard expansion (*.c for example)
  -e, --events=EVENTS        Events to monitor

 
 Possible flags for EVENTS:
  a - file was accessed
  A - metadata (permissions, timestamps, etc) changed
  W - file opened for writing closed
  N - file not opened for writing closed
  c - file/directory created
  d - file/directory deleted
  s - watched file/directory was itself deleted
  m - modify file
  v - watched file/directory was itself moved
  f - file moved out of watched directory
  t - file moved into watched directory
  o - file was opened

  -?, --help                 Give this help list
      --usage                Give a short usage message
  -V, --version              Print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

Report bugs to <kilork@yandex.ru>.

Последняя версия доступна тут.

среда, 9 февраля 2011 г.

Мониторинг директорий в linux с использованием inotify

Совсем недавно я экспериментировал с dnotify - http://kilork.blogspot.com/2011/01/linux-dnotify.html. Штука уже вполне успешно работает, не требует кушать, но все же что-то не дает покоя. Ах вот оно что, интерфейс то устаревший, нормальные люди так не работают. Приходится признать, в своих познаниях по ядерным интерфейсам я отстаю лет на 10. Ну, надо как-то наверстывать.

Итак, inotify. Логичное развитие dnotify. Проще, лучше, надежнее. Вечер перед монитором, и готова новая версия утилиты для мониторинга:


Компилируется также просто, как и в прошлый раз:
gcc inotify.c -o inotify

Ну и поведение программки не отличается:
./inotify "echo hello" .
по прежнему запускает слушание текущей директории с выводом 'hello' при любом телодвижении в этой директории. Зато есть масса плюсов, да и просто, код значительно легче читается.

Исходные коды доступны в hg-репозитории по адресу http://kilork.org/public/notify/.

З.Ы. При первой публикации не хватало wait(), что приводило к толпам зомби, поправил.

понедельник, 7 февраля 2011 г.

Опции монтирования NFS через Wi-Fi

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

nolock,rw,hard,intr,tcp

Вот собственно и все опции, последняя добавка - tcp, без нее от версии к версии ядра все сильно плавало, сейчас вполне реально гонять данные по 10 Мб/сек через две стены без затухания скорости.