[sisyphus] mailrotate
Michael Shigorin
=?iso-8859-1?q?mike_=CE=C1_osdn=2Eorg=2Eua?=
Пн Июл 4 20:48:52 MSD 2005
On Fri, Jul 01, 2005 at 08:11:54PM +0400, Mikhail Yakshin wrote:
> >>А не знаю, у меня локальная в основном. Можно подумать и над
> >>IMAP, вот только мне не требуется пока.
> >Да да, интересно как ты на Imap сделаешь rotate.
Женю натравлю. :)
> Я делаю примерно так %) Написано за пару минут, works-for-me...
Эээ... фигня-с, моя бодяга хотя бы недельный контекст оставляет.
;-)
Опубликована она была ещё в 2001:
http://lists.altlinux.ru/pipermail/community/2001-October/030262.html
Аттачу, понравится -- могу на freesource плюхнуть :-)
--
---- WBR, Michael Shigorin <mike на altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
----------- следующая часть -----------
#!/bin/sh
# A free script to rotate mail by Michael Shigorin <mike на altlinux.ru>
# v20011020
# moves $MBOXES (wildcards allowed) in $MAIL to files named after $DATEFMT in
# directories under $ARCROOT, leaving fresher than $KEEP (see also $SINCEAFTER)
# not to leave mailboxes empty.
# WARNING: BACKUP YOUR MAIL BEFORE USING! NO WARRANTIES!
MDIR="$HOME/mail"
ARCROOT="$MDIR/archive"
MBOXES="_* READ MDS"
LOG="$ARCROOT/mailrotate.log"
KEEP="7 days" # to leave me in context
KEEPEMPTY= # keep empty boxes? "" or non-empty string
SKIPEXIST= # skip existing archive mbox or append to it?
MODE=644 # mktemp will
DATEFMT="%Y-%m-%d"
SINCEAFTER=after # ...or "since". One day difference.
MAILPS="mutt" # egrep's regexp, i.e. (mutt|pine|sylpheed)
echo `date +$DATEFMT` >>$LOG
[ -n "`ps -u $USER | egrep " $MAILPS$"`" ] && {
echo "$MAILPS running as $USER, exiting..." >>$LOG
exit
} || echo "$0: starting..." >>$LOG
perl -e 'require Date::Parse; require Date::Manip' || {
echo "ERROR: grepmail needs Date::Parse and Date::Manip to" >&2
echo " enable -d option (which we need)." >&2
echo >&2
echo "Exiting to keep your mail safe; please run" >&2
echo "perl -MCPAN -e 'install Date::Parse' && perl -MCPAN -e 'install Date::Manip'" >&2
echo "as root to install the needed modules!" >&2
exit 1
}
cd "$MDIR"
for i in $MBOXES; do
[ ! -f "$i" -o -f "$i.lock" ] && continue
ARCDIR="$ARCROOT/$i"
[ -d "$ARCDIR" ] || mkdir -p "$ARCDIR"
ARCMBOX="$ARCDIR/`date -d "$KEEP ago" +$DATEFMT`"
[ -f "$ARCMBOX" -a "$SKIPEXIST" ] && continue
TMPFILE="`mktemp "$i.tmp-XXXXXX"`"
grepmail -had "$SINCEAFTER $KEEP ago" "$i" >"$TMPFILE" 2>>$LOG
# [ -f "$ARCMBOX" ] && echo "WARNING: $ARCMBOX already exists!" >>$LOG
grepmail -vhad "$SINCEAFTER $KEEP ago" "$i" >>"$ARCMBOX" 2>>$LOG
[ -s "$TMPFILE" -o "$KEEPEMPTY" ] && {
mv "$TMPFILE" "$i"
chmod $MODE "$i"
}
[ -s "$ARCMBOX" -o "$KEEPEMPTY" ] || rm -f "$ARCMBOX"
done
find "$MDIR/" -name '*.tmp-*' | xargs rm -rf
echo "$0: done." >>$LOG
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20050704/9ab75a1a/attachment-0003.bin>
Подробная информация о списке рассылки Sisyphus