Re: Сканирование каталогов
Hello!
On Friday 05 February 2010 21:18:19 Serhiy Storchaka wrote:
> и не изменившийся файл не читается (у
> Печникова он читается 2-3 раза).
Еще раз - не надо сканер напускать на файлы, которые не изменялись.
А несколько подряд идущих обращений к однуму файлу замечательно
кэшируются.
Вот как пример скрипт получения метаинформации о файле:
#!/bin/dash
# check mime type
MIME=`file --brief --mime-type "$1"`
echo "mimetype - $MIME"
if [ "$MIME" = "application/x-directory" ]; then
exit
fi
# additional file metainfo
# by coreutils
SIZE=`stat --format='%s' "$1"`
echo "size - $SIZE"
MTIME=`stat --format='%Y' "$1"`
echo "mtime - $MTIME"
HASH=`md5sum "$1" | awk '{print $1}'`
echo "md5sum - $HASH"
# by extract utility
PROG=`which extract`
if [ -z "$PROG" ]; then
exit
fi
exec $PROG "$1"
Да, если вы будете пересканировать все файлы без разбора, можно
схватиться за голову. Если же обрабатывать только новые/изменившиеся
файлы, то все прекрасно - скажем, можно элементарно заменить хэш
md5 на sha1 или вовсе убрать всю метаинформацию, или еще добавить.
При желании можно сделать перловую версию этого скрипта для
оптимизации быстродействия, хотя при инкрементальном сканировании
не вижу в этом необходимости. На мой взгляд, главное - это отказ от
использования временных файлов в процессе преобразования документов
в plain text, т.к. "бутылочное горлышко" - это запись на диск.
Best regards, Alexey Pechnikov.
http://pechnikov.tel/
Reply to: