[mdk-re] mailrotate.sh

Michael Shigorin =?iso-8859-1?q?mike_=CE=C1_lic145=2Ekiev=2Eua?=
Сб Окт 20 23:09:23 MSD 2001


	Здравствуйте.
Вот, соорудил сегодня mailrotate.

Фичи:
- делает rotation указанных (в т.ч. с шаблонами) mbox'ов в
  "левый" каталог (у меня -- из ~/mail/some_mbox в
  ~/mail/archive/some_mbox/YYYY-MM-DD).
- при этом оставляет контекст -- письма за указанное количество
  времени ago ("7 days").

Баги:
- пока без ~/.___rc, рисую тиклевый конфигуратор (но уже
  споткнулся), так что все в голове скрипта.
- требует пару перловых модулей (впрочем, оно скажет).
- дважды парсит мейлбокс -- я не нашел, чтобы grepmail умел
  разбирать ящик на два потока (+/-). Что ли автора попросить?

-- 
WBR, Michael Shigorin -- webmaster at www.chem.univ.kiev.ua
>Home Page:  http://visa.chem.univ.kiev.ua/~mike/  ICQ: 113344029
>Brainbench: http://www.brainbench.com/transcript.jsp?pid=2434729
----------- следующая часть -----------
#!/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"
KEEP="7 days"	# to leave me in context
MODE=644	# mktemp will 
DATEFMT=%Y-%m-%d
SINCEAFTER=after	# ...or "since". One day difference.

perl -e 'require Datei::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
}

[ -d "$ARCROOT" ] || {
	mkdir -p "$ARCROOT" || {
		echo "ERROR: can't mkdir -p $ARCROOT!" >&2
		exit 1
	}
}

cd "$MDIR"
for i in $MBOXES; do
	[ -f "$i" ] || continue
	ARCDIR="$ARCROOT/$i"
	[ -d "$ARCDIR" ] || mkdir "$ARCDIR"
	ARCMBOX="$ARCDIR/`date -d "$KEEP ago" +$DATEFMT`"
	TMPFILE="`mktemp $i.tmp-XXXXXX`"
	grepmail -had "$SINCEAFTER $KEEP ago" "$i" > "$TMPFILE"
	[ -f "$ARCMBOX" ] && echo "WARNING: $ARCMBOX already exists!"
	grepmail -vhad "$SINCEAFTER $KEEP ago" "$i" >> "$ARCMBOX"
	mv "$TMPFILE" "$i"
	chmod $MODE "$i"
done
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 232 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20011020/3a981eb0/attachment-0009.bin>


Подробная информация о списке рассылки community