
Ich habe in Cpanel eine Crontab eingerichtet, die jede Minute ausgeführt wird. Das funktioniert prima, aber ich möchte nicht jede Minute eine E-Mail. Ich habe eine zweite Cron-Registerkarte, die jeden Tag ausgeführt wird. Ich möchte die Reaktion dieser Registerkarte. Gibt es eine Möglichkeit, die Crontab anzuweisen, still zu sein oder nur bei Fehlern eine E-Mail zu senden?
Ich habe:
* * * * * php /home/public_html/folder/file.php 2>&1
Das letzte Stück 2>&1
habe ich hinzugefügt, weil ich dachte, es würde es stumm machen.
Aus den Cpanel-Dokumenten:
Sie können Cron so einstellen, dass es bei jeder Ausführung eines Befehls eine E-Mail sendet. Wenn Sie nicht möchten, dass für einen einzelnen Cron-Job eine E-Mail gesendet wird, können Sie die Ausgabe des Befehls wie folgt nach /dev/null umleiten: mycommand >/dev/null 2>&1
Antwort1
use -q
it bedeutet "ruhig" und erzeugt somit keine Ausgabe
* * * * * php -q /home/public_html/folder/file.php
fragen Sie sich auch, warum Sie es jede Minute laufen lassen möchten, das ist etwas übertrieben.
Antwort2
2>&1
leitet alles, was an stderr geschrieben wird, an stdout um
>/dev/null
leitet stdout nach /dev/null um
cron sendet Ihnen immer alles, was an stdout oder stderr gesendet wird, per E-Mail, sofern es nicht woanders hin umgeleitet wird. Idealerweise sollte Ihr PHP-Skript so umgeschrieben werden, dass es ein Flag --quiet akzeptiert, das nicht eine ganze Menge nutzlosen Mist an stdout schreibt, den Sie dann in Ihrem Cron-Job verwenden könnten.
Die Option des faulen Mannes ist, einenWrapper-Skriptum Ihren Cron-Job herum, der Sie daran hindert, E-Mails zu erhalten, es sei denn, Ihr Befehl endet mit einem Ergebnis ungleich Null.
Antwort3
Die richtige Konfiguration wäre
>/dev/null
Dadurch wird die Standardausgabe ignoriert und Sie erhalten nur dann eine E-Mail, wenn ein Fehler auftritt
Ihr aktuelles Setup verarbeitet die Standardausgabe nicht, daher erhalten Sie bei jeder Ausführung eine E-Mail.