[mdk-re] mailrotate.sh (а также к слову о быстрой настройке почты)

Michael Shigorin =?iso-8859-1?q?mike_=CE=C1_lic145=2Ekiev=2Eua?=
Вт Окт 23 09:51:04 MSD 2001


On Tue, Oct 23, 2001 at 09:15:28AM +0400, Alexandre Prokoudine wrote:
> А кстати, каким образом можно автоматизировать бэкапинг почты? Ну, так,
> Какие идеи будут?
Стоп. Или я на днях постил mailrotate.sh, или скажите, что я
неправ. Цепляю еще раз.

Кстати, вообще есть мысль наваять тиклевый конфигуратор
(quickstarter этакий) на тему "сделать ~/.procmailrc (с фильтром
дубликатов :-d), запустить fetchmailconf, включить бэкап,
прописать его в кронтаб; взять базовые настройки почтовки из
/etc/skel || набора".

Пока чуть-чуть застрял с интерфейсом (в общем виде). Хотя, по
правде, сделать бы это все модульным и умным, не стыдно было бы и
в мир показать. Пока даже приаттачить считай что нечего :(

-- 
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"
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

----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?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/20011023/15f0ecd8/attachment-0009.bin>


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