Re: Mails auf einem IMAP Server in andere Folder verschieben

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Mon, 27 Jun 2005 12:44:04 +0200 (CEST)

J. Erik Heinz <jerik(at)gmx.net> wrote:
> Matthias Fechner <idefix(at)fechner.net>:
> > ich möchte gerne das folgende machen, das wenn z.B. mehr als 8000 Mail
> > in meinen IMAP Server liegen oder diese älter sind als z.B. 5 Wochen
> > diese in einen anderen Folder verschoben werden.
> >
> > Z.B.
> > INBOX.freebsd -> INBOX.freebsd.old
> >
> > Kennt hier eine ein nettes Tool, das sowas kann?
>
> Shell:
> if test $(ls INBOX.freebsd | wc -l) -gt 8000; then
> find INBOX.freebsd -mtime -35 | xargs -I § mv § INBOX.freebsd.old
> fi

Davon abgesehen, daß man damit die Infrastruktur (z.B. In-
dex) des IMAP-Servers durcheinanderbringen kann, sind da
noch ein paar Kleinigkeiten verbesserungswürdig:

if [ $(ls -f INBOX.freebsd | wc -l) -gt 8000 ]; then
        find INBOX.freebsd -mtime +35 | xargs -J% mv % INBOX.freebsd.old
fi

Da die Reihenfolge beim »ls« egal ist, sollte man die Opti-
on -f verwenden. Eine möglicherweise zehnstellige Anzahl
von Dateinamen zu sortieren muß nicht sein.

Beim »find« muß es +35 heißen, nicht -35.

Bei »xargs« existiert die Option -I nur aufgrund von POSIX-
Kompatibilität, aber besonders nützlich ist sie eher nicht
(eigentlich ist sie genauso behämmert wie -exec bei »find«).
Man sollte grundsätzlich besser -J verwenden, wenn möglich.
In diesem Fall hat es vor allem den Vorteil, daß »mv« nur
einmal (oder wenige Male) anstatt evtl. mehrere tausend Ma-
le aufgerufen wird ...

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
$ dd if=/dev/urandom of=test.pl count=1
$ file test.pl
test.pl: perl script text executable
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 27 Jun 2005 - 12:44:40 CEST

search this site