Viele potentielle Dinge aus meinem Kopf.
Sind Sie sicher, dass der Crontab-Eintrag wirklich auf Ihr Skript zeigt? Wenn Sie beispielsweise ein Skript wie ~ noc / bin / script.sh ausführen möchten, aber einen Eintrag wie / home / noc / bin / script (dh einen subtilen Tippfehler) haben, funktioniert dies natürlich nicht. Normalerweise überprüfe ich meine Crontab-Einträge, indem ich den Befehl mit der Maus aus Crontab kopiert und dann in eine Eingabeaufforderung einfügt. Nur um 100% sicher zu sein, dass er das ausführt, was ich will.
Enthält Ihr Skript nur die angegebene Zeile? Normalerweise müssen Sie Folgendes hinzufügen:
#!/bin/bash
... ganz oben in Ihrem Skript, damit es funktioniert.
Wenn es komplizierter als die einzelne Zeile ist, sind Sie sicher, dass die Programmierlogik die Ausführung dieser bestimmten Zeile zulässt?
Versuchen Sie, Ihr Skript auf zu reduzieren
#!/bin/bash echo "Bing!" >> /tmp/cronjob
... um zu sehen was passiert. Wenn das funktioniert, haben Sie ein Programmierproblem in Ihrem cron-Skript. Wenn dies fehlschlägt, haben Sie ein Cron-Problem.
Ist der Benutzer 'noc' derjenige, der das Skript ausführt? Wenn nicht, sind Sie sicher, dass der Benutzer, der das cron-Skript ausführt, über / home / noc Lese- / Schreibzugriff auf die Datei email.log hat?
Wohin geht die Fehler-E-Mail des Benutzers, der den Cronjob ausführt? Wird eine Fehler-E-Mail generiert und dann an einen Ort gesendet, an dem Sie nicht erwartet werden, oder wird der Speicherabzug möglicherweise vollständig gelöscht? Versuchen Sie es mit einem Cronjob
#!/bin/bash echo "Bing!"
... und versuchen Sie dann herauszufinden, wohin die generierte E-Mail geht.
Sind cron.deny und / oder cron.allow im Spiel? Wenn /etc/cron.allow existiert, muss der User noc darin aufgeführt sein. wenn /etc/cron.deny existiert. Der Benutzer noc darf darin nicht aufgeführt sein. Wenn auf RedHat weder cron.allow noch cron.deny vorhanden sind, darf NUR der root-Benutzer cron verwenden.