Was bedeutet „/dev/null 2>&1“ in einem Cronjob-Eintrag?

Was bedeutet „/dev/null 2>&1“ in einem Cronjob-Eintrag?

Kann mir jemand erklären, was „2>&1“ hier im folgenden Cron-Job bedeutet?

0 23 * * * wget -q -O /dev/null "https://example.com/index.php" > /dev/null 2>&1

Antwort1

Dies bedeutet, dass stderr( 2- mit Fehlermeldungen des ausgeführten Befehls oder Skripts) >&zu stdout( 1- der Ausgabe des Befehls) umgeleitet wird und dass letztere zu /dev/null(dem Nullgerät) umgeleitet wird.

Auf diese Weise können Sie alle Meldungen unterdrücken, die vom ausgeführten Befehl ausgegeben werden könnten. In Cron wird dies häufig getan, um Spam durch viele irrelevante Meldungen von Serviceskripten zu vermeiden. Seien Sie dabei dennoch vorsichtig, da einige Meldungen wichtig sein könnten.

Weitere Informationen zu Ausgabeumleitungen finden Sie im Linux Documentation Project.HierUndHierDas Nullgerät wird beschriebenHier.

Antwort2

Ich möchte die Antwort von @digijay ein wenig erweitern und nicht erklären "was > /dev/null 2>&1macht" Aber "warum es da ist".

1.Cron-Aktionen schreiben entsprechende Daten in verschiedene Systemdateien. Zum Beispiel:Beliebte Ziele zum Protokollieren von Cron-Fehlernumfassen /var/log/cron, /var/log/messagesund /var/log/syslog.

2.Standardmäßig senden Cron-Jobs eine E-Mail an das Benutzerkonto, das den Cron-Job ausführt.

Um Fälle zu vermeiden,1Und2(Sie möchten weder Informationen/Fehlerprotokolle sehen noch E-Mails von Cron erhalten, Sie möchten lediglich, dass Cron im Hintergrund arbeitet), sollten Sie stderrund stdoutzu umleiten /dev/null.

verwandte Informationen