Andy1988
07-05-2008, 10:29
Moin,
Ich versuch mir grade ein Script zu schreiben, dass auf meinem Mailserver ein mal am Tag durch eine gegebene Mailbox huscht und einen Report über alle vorhandenen Spam- und/oder Virenmails erzeugt und diesen per Mail an die entsprechende Adresse schickt.
Jetzt will ich mit einer for-Schleife durch alle Mails iterieren, die jedoch im entsprechenden Unterordner "cur" oder "new" liegen können.
Wie kann ich mit einer Schleife durch beide Verzeichnisse iterieren?
Ich habe bereits ein "ls $MAILDIR/.$TYPE/{cur, new}" probiert, was nicht funktioniert:
webserver ~ # ./mailreport.sh blubb bla@blubb.de Spam
ls: cannot access /var/customers/mail/blubb/bla@blubb.de//.Spam/{cur,: No such file or directory
ls: cannot access new}: No such file or directory
Und "ls $MAILDIR/.$TYPE/cur $MAILDIR/.$TYPE/new" gibt leider zusätzlich noch an, aus welchem der beiden Verzeichnisse die Dateien kommen. Das interessiert mich in dem Fall aber überhaupt nicht.
Hat jemand ne Idee?
Bisheriger Code:
#!/bin/bash
SYSCPUSER=$1
MAILBOX=$2
TYPE=$3
MAILDIR="/var/customers/mail/$SYSCPUSER/$MAILBOX/"
if [ -z $SYSCPUSER ] || [ -z $MAILBOX ] || [ "$TYPE" != "Virus" ] && [ "$TYPE" != "Spam" ]; then
echo "mailreport.sh <syscpuser> <mailaddress> <Virus|Spam>"
exit 1
fi
for mail in `ls $MAILDIR/.$TYPE/{cur, new}`; do
echo $mail
done
Ich versuch mir grade ein Script zu schreiben, dass auf meinem Mailserver ein mal am Tag durch eine gegebene Mailbox huscht und einen Report über alle vorhandenen Spam- und/oder Virenmails erzeugt und diesen per Mail an die entsprechende Adresse schickt.
Jetzt will ich mit einer for-Schleife durch alle Mails iterieren, die jedoch im entsprechenden Unterordner "cur" oder "new" liegen können.
Wie kann ich mit einer Schleife durch beide Verzeichnisse iterieren?
Ich habe bereits ein "ls $MAILDIR/.$TYPE/{cur, new}" probiert, was nicht funktioniert:
webserver ~ # ./mailreport.sh blubb bla@blubb.de Spam
ls: cannot access /var/customers/mail/blubb/bla@blubb.de//.Spam/{cur,: No such file or directory
ls: cannot access new}: No such file or directory
Und "ls $MAILDIR/.$TYPE/cur $MAILDIR/.$TYPE/new" gibt leider zusätzlich noch an, aus welchem der beiden Verzeichnisse die Dateien kommen. Das interessiert mich in dem Fall aber überhaupt nicht.
Hat jemand ne Idee?
Bisheriger Code:
#!/bin/bash
SYSCPUSER=$1
MAILBOX=$2
TYPE=$3
MAILDIR="/var/customers/mail/$SYSCPUSER/$MAILBOX/"
if [ -z $SYSCPUSER ] || [ -z $MAILBOX ] || [ "$TYPE" != "Virus" ] && [ "$TYPE" != "Spam" ]; then
echo "mailreport.sh <syscpuser> <mailaddress> <Virus|Spam>"
exit 1
fi
for mail in `ls $MAILDIR/.$TYPE/{cur, new}`; do
echo $mail
done