Wohin geht die Ausgabe von "at" - und "cron" -Jobs?

9

Wohin gehen die Standardausgaben atund cronAufgaben, wenn kein Bildschirm angezeigt werden kann?

Es wird weder in dem Verzeichnis angezeigt, aus dem die Jobs gestartet wurden, noch in meinem Home-Verzeichnis.

Wie könnte ich das tatsächlich herausfinden, wenn ich nicht weiß, wie ich einen Hintergrundjob debuggen oder verfolgen soll?

Michael Durrant
quelle
Die Ausgabe erfolgt normalerweise per E-Mail.
donothings erfolgreich
Ich empfehle die Verwendung von mutt, "einem kleinen, aber sehr leistungsfähigen textbasierten Mail-Client", um die Ausgabe zu lesen. Es war in den Repositories für jede Distribution, die ich benutzt habe.
Kwarrick

Antworten:

10

Von der Cron-Manpage:

Bei der Ausführung von Befehlen wird jede Ausgabe an den Eigentümer der Crontab gesendet (oder an den Benutzer, der in der Umgebungsvariablen MAILTO in der Crontab angegeben ist, falls vorhanden). Der Name der untergeordneten Kopien von cron, die diese Prozesse ausführen, wird in Großbuchstaben geschrieben, wie in der Ausgabe von syslog und ps zu sehen ist.

Sie sollten also die E-Mails Ihres / root oder das Syslog (z. B. / var / log / syslog) überprüfen.

Jari Laamanen
quelle
Auf meinem Mac wurde nach einfachem Aufruf von "cron" der Pfad zur "E-Mail" angezeigt. In meinem Fall war es / var / mail / <Benutzername>.
Cédric Guillemette
4

Bei lang laufenden Prozessen ist es manchmal hilfreich zu wissen, wie die Ausgabe lautet, bevor Sie die E-Mail erhalten. Ich verwende stattdessen Folgendes:

  1. Verwenden Sie psdiese Option , um die Prozess-ID Ihres laufenden Programms zu ermitteln ( PID siehe unten).
  2. Verwenden Sie lsofdiese Option, um die Datei zu finden, in die die Ausgabe geschrieben wird:

    lsof -p PID
    

Suchen Sie in der Ausgabe nach den Zeilen 1uund 2uunter der FDSpaltenüberschrift.

In diesen Zeilen erfahren Sie, in welche temporären Dateien die Prozessausgabe verschoben wird, bevor sie per E-Mail gesendet wird. In der Regel atbefindet sich die Datei unter /var/spool/cron/atjobs/. Zeigen Sie schließlich diese Datei an und Sie finden die (aktuelle) Ausgabe Ihres Prozesses.

Gabriel G.
quelle
Die Dateien unter 1uund 2usind vom Typ UNIX. Ich vermute, das sind UNIX-Sockets. Wie schaue ich jetzt in die Dateien?
Kapad