Ich verwende Amazon Linux und versuche, einen Cron-Job von meinem Home-Verzeichnis aus auszuführen (ich habe keine Sudo-Berechtigungen auf dem Computer). Ich richte einen Cron-Job ein, indem ich crontab -e ausführe und diese Zeile hinzufüge
30 18 * * * /home/myuser/run_my_script.sh
darin. Ich stelle jedoch fest, dass die Dinge nicht zu laufen scheinen, also wollte ich herausfinden, warum. Aber das Ausführen dieses
[myuser@mymachine ~]$ tail /var/log/cron
tail: cannot open ‘/var/log/cron’ for reading: Permission denied
hilft nicht. Wie kann ich herausfinden, warum die Dinge nicht laufen, oder vielmehr, wo in meinem Skript die Dinge zusammenbrechen?
Antwort1
Fügen Sie am Ende Ihres cron
Tabelleneintrags hinzu: >> /home/myuser/myscript.log 2>&1
Dadurch wird die Ausgabe in einer Protokolldatei erfasst. Standardmäßig wird die Ausgabe mit dem lokalen Mailer-Daemon an den Benutzer gesendet, dem der Job gehört. Ich bin mir jedoch nicht sicher, ob dieser Daemon standardmäßig auf einer AWS-Instanz ausgeführt wird. Wenn dies der Fall ist, versuchen Sie, ihn mail
als Benutzer auszuführen, dem der Job gehört. Möglicherweise warten einige Nachrichten mit der Ausgabe auf Sie, nach der Sie suchen.