Cronjobs sind eine tolle Erfindung um diverse Dinge unter Linux zu automatisieren. Wer in einem Cronjob ein Shell Skript ausführt und die gesamte Ausgabe in eine Datei loggen möchte kann das über folgenden Parameter realisieren: > /pfad/zur/logdatei.log 2>&1
Ausgabe von Cronjob in Datei umleiten
[bash]crontab -e30 22 * * * /usr/scripts/mysql_backup.sh > /usr/scripts/mysql_backup.log 2>&1[/bash]
> /usr/scripts/mysql_backup.log weist an dass die Standard Ausgabe (stdout) des Skripts backup.sh in die Logdatei mysql_backup.log geschrieben wird
2>&1 weist an dass sowohl die Standard Ausgabe (stdout) als auch die Error Ausgabe (stderr) in die Logfile geschrieben werden
Bessere Variante:
Der cron Eintrag kann auch wie folgt abgekürzt werden „&>“ steht für „2>&1″:
[bash]30 22 * * * /usr/scripts/mysql_backup.sh &> /usr/scripts/mysql_backup.log[/bash] [sam id=“2″ codes=“true“]Ausgabe an Log Datei anhängen und nicht neu schreiben
Hinweis: Jede Ausführung des Cronjobs schreibt die Datei mysql_backup.log neu. Möchte man dass die Ausgabe an das Logfile angehängt wird, so muss das Pfeilzeichen > verdoppelt werden: >>
[bash]crontab -e30 22 * * * /usr/scripts/mysql_backup.sh >> /usr/scripts/mysql_backup.log 2>&1[/bash]
Hier gibt es weitere Tipps zum Erstellen von Cronjobs
Ich erhalte bei meinem PHP Cronjob Script welches alle 15 Minuten läuft immer folgendes Mail zugesendet:
PHP Notice: Undefined variable: handle in /var/www/website1/admin/cron.php on line 9
PHP Warning: fclose() expects parameter 1 to be resource, null given in /var/www/website1/admin/cron.php on line 9
Der Cronjob erfüllt aber seinen Zweck und die Aufgabe wird erfolgreich abgeschlossen. Ich kenn mich aber leider in PHP nicht aus und möchte die Ausgabe daher komplett deaktivieren. Ist das Möglich?
Schöne Grüe aus dem Pott
Sebastian
Hallo Sebastian,
grundsätzlich empfehle ich die Cronjob Benachrichtigung nicht abzudrehen sondern eher den PHP Fehler zu beheben.
Ich habe in folgendem Beitrag eine Anleitung geschrieben wie du die Benachrichtigun abdrehen kannst: http://www.sysadminslife.com/linux/quicktipp-cron-daemon-mails-deaktivieren-cronjob-ohne-ausgabe-email/
Gruß
Patrick