Ich habe crontab -e
meiner Crontab die folgende Zeile hinzugefügt:
* * * * * echo hi >> /home/myusername/test
Ich sehe jedoch nicht, dass in die Testdatei geschrieben wurde. Handelt es sich um ein Berechtigungsproblem oder funktioniert Crontab nicht ordnungsgemäß?
Ich sehe, dass der Cron-Prozess ausgeführt wird. Wie kann ich das debuggen?
Edit - Ask Ubuntu hat eine nette Frage zu crontab , leider hilft mir das immer noch nicht weiter.
Edit 2 - Hmm, meine Testdatei scheint 214 Zeilen zu haben, was bedeutet, dass in den letzten 214 Minuten jede Minute darauf geschrieben wurde. Ich bin nicht sicher, was das Problem war, aber es ist offensichtlich weg.
fcron
tut dies auch.Haben Sie nach Ihrem Cronjob eine Leerzeile hinzugefügt ?
quelle
Ich hatte das gleiche Problem - eine funktionierende Crontab stoppte plötzlich, nachdem ich am Ende einen neuen Eintrag hinzugefügt hatte. Es stellte sich heraus, dass ich vergessen hatte, nach dieser letzten Zeile eine neue Zeile einzufügen.
Ich fand heraus, indem ich den Befehl ausgab
und die Ausgabe zeigte das Problem:
Das Hinzufügen der neuen Zeile und das Speichern haben das Problem behoben.
quelle
Klingt so, ist behoben. Versuchen Sie beim nächsten Mal, auch den STDERR zu protokollieren. Folgendes wird nur in STDOUT und nicht in STDERR protokolliert:
Stellen Sie sicher, dass es auch eine explizite Klausel für STDERR gibt. Andernfalls wird STDERR möglicherweise per E-Mail an den Benutzer gesendet (vorausgesetzt, die E-Mail funktioniert), oder es kommt auf keinen Fall darauf an, wie Cron konfiguriert ist.
Ich bevorzuge es, eine Cronjob-Ausgabe an Syslog zu senden. Auf diese Weise nutze ich jede vorhandene Syslog-Infrastruktur (zentralisierte Syslogs, Splunk, bereits unterstützte Protokollrotation, einfacher Vergleich von Nachrichten in / var / log / messages & / var / log / cronjob usw.) und nicht die Sysadmins (mich) mit unnötigen E-Mails zu spammen.
quelle
Bei mir bestand das Problem darin, dass das Skript nicht ausführbar war. Ich hatte Crontab-e- Setup wie folgt
Und die Datei myscript war nicht ausführbar, also lief ich
Sofort sah ich die erwartete Ausgabe.
quelle
Ihre Cron - Linie funktioniert auf meinem Computer , wenn ich ändern
myusernae
zuphunehehe
. Es gibt verschiedene Möglichkeiten, um herauszufinden, was mit Ihrem System nicht stimmt.Cron sendet normalerweise eine E-Mail an den Benutzer, wenn etwas nicht stimmt. Wenn die Meldung "Sie haben E-Mail" angezeigt wird, überprüfen Sie Ihren Posteingang mit einem E-Mail-Client . Oder überprüfen Sie in Ihrem Home-Verzeichnis, ob dort eine Datei mit dem Namen
dead.letter
vorhanden ist.Sie können
/var/log/
nach Einträgen in Bezug auf cron suchen. Auf meinem Computer befindet sich die Protokolldatei unter/var/log/cron/current
(Root-Zugriff erforderlich).Wenn Sie Root-Zugriff haben, können Sie den Cron-Daemon stoppen und im Debug-Modus starten. Zum Beispiel würde ich verwenden (ändern Sie
fcron
den Namen Ihres Daemons):quelle
ps -ef | grep cron
und du solltest eine Zeile für deinen Cron sehen. Überprüfen Sie die Manpage des Cron, um das Flag für das Debuggen zu sehen. Es ist wahrscheinlich, dass Sie Vixie Cron verwenden . In diesem Fall lautet das Debug-Flag-x
. Beenden Sie den Cron-Prozess und starten Sie ihn erneut mit dem zusätzlichen Flag.Wenn cron fehlschlägt, wird höchstwahrscheinlich eine E-Mail an die Benutzer-ID des Cron-Jobs auf diesem Computer generiert. Wenn auf Ihrem Computer kein MTA ausgeführt wird oder Sie diese E-Mail nicht an einem anderen Ort lesen oder weiterleiten, wird diese Nachricht auch dann nicht angezeigt, wenn der MTA ausgeführt wird.
Eine gute Möglichkeit, die Fehler Ihres Crontab per E-Mail zu erhalten, besteht darin, Ihr Crontab folgendermaßen aussehen zu lassen:
Verwenden Sie natürlich Ihre E-Mail-Adresse anstelle von [email protected]. Dies weist cron an, Fehler an Ihre E-Mail-Adresse und nicht an das lokale Konto zu senden. Dies ist insbesondere dann nützlich, wenn Sie eine Root-Crontab (oder ein Crontab-Fragment in /etc/cron.d) haben, die Sie nur als Ausgabe an Sie senden möchten. Sie können vermeiden, das Postfach von Root oder die Weiterleitungsadresse von Root zu spammen.
quelle
Ich denke, ein Grund dafür könnte sein, dass das / home / -Verzeichnis verschlüsselt ist und wenn der Benutzer abgemeldet ist, cron nichts in diesem Verzeichnis tun kann.
Siehe: https://stackoverflow.com/a/40354269/1279002
quelle