Cron-Job kann NodeJS-Skript nicht ausführen

Cron-Job kann NodeJS-Skript nicht ausführen

Ich habe einen Cron-Job, dessen Ausgabe ich protokollieren möchte. Die Cron-Datei ( crontab -e) lautet:

0 7 * * * node $HOME/server/task.js >> $HOME/server/log.txt

Die Crontask heißt:

$ grep CRON /var/log/syslog
Nov  4 07:00:01 ip-... CRON[0000]: (bitnami) CMD (node $HOME/server/task.js >> $HOME/server/task.txt)
Nov  4 07:00:01 ip-... CRON[0000]: (CRON) info (No MTA installed, discarding output)

Die Zeile mit dem Fehler bedeutet, dass ichkeine E-Mail installiert, aber das will ich auch nicht.

Die Ausgabedatei ist leer, wenn die erste Zeile der NodeJS-Aufgabe verwendet console.log().

Ich bestätige, dass der Cronjob nicht ausgeführt wird.

Wie kann ich den Fehler beheben, Cron ausführen und das Ergebnis in einer Datei speichern?

Antwort1

Standardmäßig wird die Ausgabe des Cron-Jobs an den Benutzer gesendet, mit dem Sie das Skript ausführen. Der Grund, warum Sie Probleme haben,Kein MTA installiertda auf Ihrem System kein Mailing-Agent installiert ist.

Ihr Skript wird tatsächlich ausgeführt, wie in der ersten Syslog-Zeile zu sehen ist. Das Problem liegt hier in der Ausgabe, die nicht auf die Standardausgabe umgeleitet wird.

Versuchen Sie also, Ihren Cron-Job zu bearbeiten:

   0 7 * * * node $HOME/server/task.js >> $HOME/server/log.txt 2>&1

verwandte Informationen