A
arduino.cc
Grünschnabel
Hallo Leute
Ich bin neu hier und Scriptanfänger, habe aber von Programmieren (vorw. JAVA) berufliche Erfahrung.
Nun zum Problem; ich hab einen Mailserver am laufen un d möchte dort aber die mailqueue von "MAILER-DAEMON" - Meldungen säubern - was manuell eigentlich gut klappt.
Um das ganze zu automatisieren habe ich ein script geschrieben und führe es als cronjob aus, auch das funktioniert.
Das einzige was nicht funktioniert, ist das auslesen der mailqueue-länge und zwar nur wenn ich das script als cronjob laufen lasse??
Hier mal fakten
Mein Script:
echo "Start Script at $(date)."
ACTUAL_Q_LENGTH=$(postqueue -p | grep "MAILER-DAEMON" | wc -l)
MAXIMAL_Q_LENGTH=3500
echo "aktuell=" $ACTUAL_Q_LENGTH "=" $MAXIMAL_Q_LENGTH
if [ $ACTUAL_Q_LENGTH -gt $MAXIMAL_Q_LENGTH ];
then echo $(mailq | cleanq | grep "MAILER-DAEMON" | awk '{ print $1 }' | postsuper -d -)
fi
echo "Done Script at $(date)."
Aus bash gestartet:
root@myServer:/home/SYSTEM/fja# /home/SYSTEM/fja/remove_all_mailerdaemon.sh
ergibt folgendes Echo:
Start Script at Wed Jul 14 07:13:08 CEST 2010.
aktuell= 1769 und maximal waere 3500
Done Script at Wed Jul 14 07:13:09 CEST 2010.
Eintrag im crontab:
*/5 * * * * /home/SYSTEM/fja/remove_all_mailerdaemon.sh >> /home/SYSTEM/fja/mailerdaemon.log
wird aufgerufen und ergibt folgenden Eintrag im Logfile:
Start Script at Wed Jul 14 07:10:01 CEST 2010.
aktuell= 0 und maximal waere 3500
Done Script at Wed Jul 14 07:10:01 CEST 2010.
obwohl die mailqueue zur laufzeit ganz sicher nicht 0 ist.
Irgendwie wird der befehl $(postqueue -p | grep "MAILER-DAEMON" | wc -l)
wessen Rückgabe (also die anzahl Mails in der Queue mit dem gesuchten Begriff drinn) gleich 0 ist nicht richtig oder gar nicht ausgeführt.
ich seh es nicht...
Bin dankbar um jeden Hinweis ;-)
Ich bin neu hier und Scriptanfänger, habe aber von Programmieren (vorw. JAVA) berufliche Erfahrung.
Nun zum Problem; ich hab einen Mailserver am laufen un d möchte dort aber die mailqueue von "MAILER-DAEMON" - Meldungen säubern - was manuell eigentlich gut klappt.
Um das ganze zu automatisieren habe ich ein script geschrieben und führe es als cronjob aus, auch das funktioniert.
Das einzige was nicht funktioniert, ist das auslesen der mailqueue-länge und zwar nur wenn ich das script als cronjob laufen lasse??
Hier mal fakten
Mein Script:
echo "Start Script at $(date)."
ACTUAL_Q_LENGTH=$(postqueue -p | grep "MAILER-DAEMON" | wc -l)
MAXIMAL_Q_LENGTH=3500
echo "aktuell=" $ACTUAL_Q_LENGTH "=" $MAXIMAL_Q_LENGTH
if [ $ACTUAL_Q_LENGTH -gt $MAXIMAL_Q_LENGTH ];
then echo $(mailq | cleanq | grep "MAILER-DAEMON" | awk '{ print $1 }' | postsuper -d -)
fi
echo "Done Script at $(date)."
Aus bash gestartet:
root@myServer:/home/SYSTEM/fja# /home/SYSTEM/fja/remove_all_mailerdaemon.sh
ergibt folgendes Echo:
Start Script at Wed Jul 14 07:13:08 CEST 2010.
aktuell= 1769 und maximal waere 3500
Done Script at Wed Jul 14 07:13:09 CEST 2010.
Eintrag im crontab:
*/5 * * * * /home/SYSTEM/fja/remove_all_mailerdaemon.sh >> /home/SYSTEM/fja/mailerdaemon.log
wird aufgerufen und ergibt folgenden Eintrag im Logfile:
Start Script at Wed Jul 14 07:10:01 CEST 2010.
aktuell= 0 und maximal waere 3500
Done Script at Wed Jul 14 07:10:01 CEST 2010.
obwohl die mailqueue zur laufzeit ganz sicher nicht 0 ist.
Irgendwie wird der befehl $(postqueue -p | grep "MAILER-DAEMON" | wc -l)
wessen Rückgabe (also die anzahl Mails in der Queue mit dem gesuchten Begriff drinn) gleich 0 ist nicht richtig oder gar nicht ausgeführt.
ich seh es nicht...
Bin dankbar um jeden Hinweis ;-)