Ich habe einen CentOS 6.6
Server mit den folgenden Paketen installiert:
crontabs-1.10-33.el6.noarch
cronie-1.4.4-12.el6.x86_64
cronie-anacron-1.4.4-12.el6.x86_64
kernel-2.6.32-504.3.3.el6.x86_64
Manchmal wird einer der Sicherungsjobs, die täglich ausgeführt werden sollen, einfach nicht ausgeführt. Das Skript wird nicht einmal nach aufgerufen /var/log/cron.log
. Interessant zu erwähnen, dass andere Jobs, die genau zur gleichen Zeit ausgeführt werden sollen, ohne Probleme ausgeführt werden.
Ich kann das Problem nicht reproduzieren und habe keine Muster darauf entdeckt. Wenn ich nichts tue, wird der Job am nächsten Tag wie erwartet korrekt ausgeführt.
crond ignoriert einfach nur einen der mehreren Jobs, die zu einem bestimmten Zeitpunkt ausgeführt werden sollen. Dies geschieht nur sporadisch.
Ich habe an einigen anderen Stellen gelesen, dass am Ende der crontab
Datei eine leere Zeile eingefügt wird. Der Job, der gelegentlich nicht ausgeführt werden kann, befindet sich in der Tat in der letzten Zeile meiner crontab
Datei. Ich konnte keine Bestätigung finden, dass dies ein echter oder bekannter Fehler ist.
# tail -2 /var/spool/cron/postgres
* * * * * OTHERJOB
0 21 * * * /pg_backup.sh
Das ist alles was ich in meinem habe /var/log/cron.log
Mar 31 21:00:02 SERVERNAME [cron.info] CROND[19394]: (root) CMD (OTHERJOB)
Mar 31 21:00:02 SERVERNAME [cron.info] CROND[19418]: (postgres) CMD (/pg_backup.sh)
Mar 31 21:01:02 SERVERNAME [cron.info] CROND[20062]: (root) CMD (OTHERJOB)
Apr 1 21:00:02 SERVERNAME [cron.info] CROND[31349]: (root) CMD (OTHERJOB)
Apr 1 21:01:01 SERVERNAME [cron.info] CROND[32080]: (root) CMD (OTHERJOB)
Sehen Sie, wie OTHERJOB
immer ausgeführt wurde, während on Apr 1
pg_backup.sh
nicht einmal ausgeführt wurde.
Ich habe bereits versucht, neu zu starten, crond
aber das passiert immer wieder. Dies betrifft mehrere Server mit derselben Version von Betriebssystem, Kernel und cron
RPMs.
Es gibt eine neuere Version von cronie
( 1.4.12
), ein Upgrade ist jedoch keine Option, da wir bereits die neueste verfügbare Version für verwendenCentos 6.6
Ich habe das Changelog für alle cronie
Versionen nach meiner ( 1.4.4
) durchgesehen und habe anscheinend keine Lösung für dieses spezielle Problem gefunden. Überprüfte auch alle Festschreibungsnachrichten .
echo >/dev/null
z. B.)?/var/log/audit/audit.log
.Antworten:
Für das ursprüngliche Cron musste jeder Eintrag mit einer neuen Zeile enden. Ja, manchmal benötigen Sie am Ende eine leere Zeile oder etwas anderes.
Einige Versionen haben es behoben oder geben eine Warnung aus, zum Beispiel Ubuntu Maverik (10.10): crontab Schauen Sie sich den Diagnoseabschnitt unten an, der besagt, dass eine Warnung in syslog geschrieben wird.
quelle
Dies ist die erste Antwort, die mit dem Suchtext geliefert wird,
cron error getpwname failed
sodass ich dachte, ich würde die Ursache meines Problems veröffentlichen:Ich habe / etc / crontab verwendet, aber vergessen, den Benutzer vor den Befehl zu stellen.
dh
Anstatt
Es gab den gleichen Fehler, gehen Sie Abbildung.
quelle
Wir verwenden
sssd
für die Remote-Authentifizierung.crond
muss vor dem Ausführen von Jobs nach verfügbaren Benutzern suchen und dies alle 60 Sekunden.sssd
Standardclient_idle_timeout
ist 60 Sekunden. Also hatten wir eine Rennbedingung zwischensssd
undcrond
Wir sind diesem Problem nur auf den Grund
1.4.4-14
gegangen, weil crond in der Version etwas ausführlicher über einige Fehler war.Nach dem Update auf diese Version wurde der folgende Fehler angezeigt, während ein Job nicht ausgeführt wurde:
das brachte uns dazu: https://bugzilla.redhat.com/show_bug.cgi?id=1209600#c2
und schließlich dazu: https://access.redhat.com/solutions/1125133
Die vorgeschlagene Lösung für den obigen Link war das Hinzufügen der folgenden Zeile zu
/etc/sssd/sssd.conf
:Die obige Änderung hat das Problem für uns behoben und cron überspringt keine Jobs mehr.
quelle