Hi Leute!
Ich hab da ein seltsames Problem. Ich hab einen CronJob eingerichtet, der jede Nacht um 1 Minute nach 4 Uhr die Festplatte spiegelt. Führ ich den Befehl über /root/mirror.sh als root aus, funktioniert das wunderbar. Als Sicherheit, dass alles funktioniert lasse ich mir eine E-Mail schicken, dass das Programm durchgelaufen ist. Manuell ausgeführt bekomme ich diese E-Mail auch. Aber über den CronJob bekomme ich keine Mail, jetzt weiß ich natürlich nicht, ob das Programm auch wirklich lief, was mir ein wenig Sorgen macht.
So, jetzt hab ich nachgesehen, ob es irgendwo eine Meldung gibt, ob das Programm ausgeführt wird. Gibt es aber nicht. Kann mir jemand sagen, wo ich überall nachschauen kann?
Danke & viele Grüße,
Martin
CronJob wird nicht ausgeführt
Re: CronJob wird nicht ausgeführt
/var/log/syslog protokolliert cron normal, wenn er einen Job ausführt.
Re: CronJob wird nicht ausgeführt
Hi,
das bei cronjobs das Environment nicht unbedingt das selbe ist wie wenn du als angemeldeter User arbeitest ist dir bewusst, oder? Versuch's mal mit Vollqualifizierten Programm aufrufen.
das bei cronjobs das Environment nicht unbedingt das selbe ist wie wenn du als angemeldeter User arbeitest ist dir bewusst, oder? Versuch's mal mit Vollqualifizierten Programm aufrufen.
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
Re: CronJob wird nicht ausgeführt
Hi!
Also das seltsame ist, dass in den Logs eben nirgends was davon auftaucht. Ich hab jetzt dem Shell-Script einfach mal gesagt, es soll nach Beendigung eine Datei anlegen und gewartet. Siehe da, die Datei wurde angelegt, also muss der CronJob ja doch irgendwo laufen. Das Problem ist, dass ich das Shell-Script nicht geschrieben habe, sondern mein Provider. Ich hab meinen Server vor einiger Zeit neu einrichten lassen und die haben mir aus Kulanz (weils ewig gedauert hat) eine zweite Festplatte eingebaut, die jetzt jede Nacht via Rsync gefüllt wird.
So, am Ende des Shell-Scripts steht folgender Aufruf:
echo "RSYNC $HOSTNAME DONE" | mail -s "Backup complete" meine@emailadresse.de
So, den Befehl 'mail' gibt es aber unter Debian ETCH nicht und ich finde auch das entsprechende Paket dafür nicht. Deshalb habe ich diese Zeile auskommentiert und mit
sendmail meine@emailadresse.de < /root/rsync_mail_body.txt
ersetzt. Führe ich es manuell aus, wird die E-Mail versandt, über den Cron anscheinend nicht. Sind die Umgebungen so unterschiedlich, dass nichtmal eine E-Mail verschickt werden kann?
Viele Grüße,
Martin
Also das seltsame ist, dass in den Logs eben nirgends was davon auftaucht. Ich hab jetzt dem Shell-Script einfach mal gesagt, es soll nach Beendigung eine Datei anlegen und gewartet. Siehe da, die Datei wurde angelegt, also muss der CronJob ja doch irgendwo laufen. Das Problem ist, dass ich das Shell-Script nicht geschrieben habe, sondern mein Provider. Ich hab meinen Server vor einiger Zeit neu einrichten lassen und die haben mir aus Kulanz (weils ewig gedauert hat) eine zweite Festplatte eingebaut, die jetzt jede Nacht via Rsync gefüllt wird.
So, am Ende des Shell-Scripts steht folgender Aufruf:
echo "RSYNC $HOSTNAME DONE" | mail -s "Backup complete" meine@emailadresse.de
So, den Befehl 'mail' gibt es aber unter Debian ETCH nicht und ich finde auch das entsprechende Paket dafür nicht. Deshalb habe ich diese Zeile auskommentiert und mit
sendmail meine@emailadresse.de < /root/rsync_mail_body.txt
ersetzt. Führe ich es manuell aus, wird die E-Mail versandt, über den Cron anscheinend nicht. Sind die Umgebungen so unterschiedlich, dass nichtmal eine E-Mail verschickt werden kann?
Viele Grüße,
Martin
Re: CronJob wird nicht ausgeführt
Hi!roli hat geschrieben:Hi,
das bei cronjobs das Environment nicht unbedingt das selbe ist wie wenn du als angemeldeter User arbeitest ist dir bewusst, oder? Versuch's mal mit Vollqualifizierten Programm aufrufen.
Ja, eigentlich ist es mir bewusst, aber ich dachte nicht, dass sendmail davon betroffen ist. Auf einem anderen Server (allerdings kein Debian, sondern CentOS) funktioniert es mit dem mail-Befehl ohne Probleme. Eine Änderung von sendmail... auf /usr/sbin/sendmail hat das Problem gelöst
Danke dir!
Viele Grüße,
Martin
Re: CronJob wird nicht ausgeführt
Hi,
Wenn sendmail halt nicht im PATH liegt, dann kann die Kiste halt nicht ;-}m@ddin hat geschrieben: Ja, eigentlich ist es mir bewusst, aber ich dachte nicht, dass sendmail davon betroffen ist.
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
Re: CronJob wird nicht ausgeführt
Nun ja, packages.debian.org gibt da aber eine ganze Liste aus. Ausserdem gibts auch noch apt-file womit man sehen kann, welche Datei in welchem Paket ist.m@ddin hat geschrieben:So, den Befehl 'mail' gibt es aber unter Debian ETCH nicht und ich finde auch das entsprechende Paket dafür nicht.
Prinzipiell solltest du dir immer bewusst sein, dass das Environment in einem Cronjob nicht deinem in der Shell entspricht. Entweder, man setzt $PATH zu Beginn des Skriptes korrekt oder man ruft jeden Befehl mit vollem Pfad auf.