Re: Чем удалять устаревшую почту?
> Nikita V. Youshchenko -> debian-russian@lists.debian.org @ Sat, 27 Feb
2010 13:27:17 +0300:
> >> >> > Имеем ~user/Maildir/ на сервере, в котором большое количество
> >> >> > (>50, хотя это не важно) папок Maildir. Есть command line
> >> >> > доступ до сервера, есть возможность туда поставить что-нибудь.
> >> >> >
> >> >> > Из некоторых папок хочется автоматически удалять устаревшую
> >> >> > почту. Понятие "устаревшая" своё для каждой папки.
> >> >> >
> >> >> > Раньше использовал запуск из крона скрипта с нескольними
> >> >> > командами вида arhivemail --delete -q -d N
> >> >> > .../Maildir/.folder.subfolder/
> >> >> >
> >> >> > Теперь захотелось более гибкое условие удаления. Чтобы кроме
> >> >> > возраста письма было что-нибудь вроде регулярного выражение на
> >> >> > хэдэр.
> >> >>
> >> >> grepmail, похоже, умеет только mbox.
> >>
> >> NVY> mbox много кто умеет. Но в данном случае требуется решение для
> >> Maildir.
> >>
> >> man find?
>
> NVY> И что? Запускать из файнда шелловскую команду на каждый из многих
> NVY> тысяч файлов мэилдира? Что-то мне кажется что это часами будет
> NVY> работать...
>
> Слухи о тяжести fork по сравнению с анализом файла сильно преувеличены.
Если на то пошло, то fork() тут займёт лишь мизерную долю времени.
Динамическая линковка каждого порождённого процесса - на 2-3 порядка
медленнее. Многочисленные lookup() на огромный каталог тоже небыстры.
Но, главное, криво это по самое немогу.
> Впрочем, учитывая, что ты устаревшую почту собираешься _удалять_, многие
> тысячи файлов там будут только при первом запуске...
Ошибаетесь. Речь идёт об удалении нескольких писем из нескольких тесяч за
один запуск.
Reply to: