Brauche Hilfe, um das herauszufinden. Ich habe das folgende Skript - /root/eximqueue.sh mit den entsprechenden +x-Rechten usw.:
#!/bin/bash
######### Edit here ##########
[email protected] # Set this to your email id to receive alerts on mail queue
_limit=20 # Set the limit here
##############################
clear;
_result="/tmp/eximqueue.txt"
_queue="`exim -bpc`"
if [ "$_queue" -ge "$_limit" ]; then
echo "Current queue is: $_queue" > $_result
echo "Summary of Mail queue" >> $_result
echo "`exim -bp | exiqsumm`" >> $_result
mail -s "Number of mails on `hostname` : $_queue" $_mail_user < $_result
cat $_result
_message_id="`exiqgrep -i -f [email protected] | xargs exim -M`"
fi
rm -f $_result
Dann habe ich den Cron eingerichtet, meine Crons überprüft (crontab -l) und da steht:
*/5 * * * * /bin/sh /root/eximqueue.sh
Habe meine Cron-Logs überprüft
grep eximqueue /var/log/cron
... und es läuft (nur ein paar Beispiele):
Oct 12 14:00:01 osi CROND[28191]: (root) CMD (/bin/sh /root/eximqueue.sh)
Oct 12 14:05:01 osi CROND[30877]: (root) CMD (/bin/sh /root/eximqueue.sh)
Oct 12 14:10:01 osi CROND[893]: (root) CMD (/bin/sh /root/eximqueue.sh)
Oct 12 14:15:01 osi CROND[4429]: (root) CMD (/bin/sh /root/eximqueue.sh)
Das Problem ist, dass ich keine E-Mail vom Skript bekomme! Wenn ich es jedoch direkt ausführe, funktioniert es einwandfrei und ich bekomme die E-Mail. Ideen?
Antwort1
Das Problem besteht darin, dass der Pfad viel kürzer ist, wenn ein Skript von Cron aus gestartet wird, als wenn Sie es direkt von Bash aus ausführen.
Ersetzen Sie einfach die Aufrufe des Programms durch den vollständigen Pfad zu ihnen, /usr/sbin/exim
statt exim
beispielsweise (oder wo Sie Exim installiert haben).