Warum sollte Anacron nicht laufen?


9

Ich habe ein Ubuntu-System, auf dem Anacron installiert ist. Ich bin mir jedoch ziemlich sicher, dass es nicht läuft. Die Befehle in /etc/cron.daily werden nicht ausgeführt, um die Syslog-Dateien zu drehen (ich verwende sysklog, das über eine eigene rotierende Protokollmethode verfügt, ohne logrotate). Das letzte Mal, dass die Protokolle gedreht wurden, war im Oktober 2009. /var/spool/anacron/cron.dailyexistiert und der Inhalt ist 20091015. AFAIR hatten wir damals einen Stromausfall und alles neu gestartet.

Wie kann ich Anacron debuggen? Wie kann ich sehen, warum es nicht läuft? Mein erster Instinkt ist zu suchen /var/log/anacron, aber das ist nicht da. Wie kann ich das Problem beheben, damit es wieder ausgeführt wird?

Antworten:


5

Schauen Sie sich Folgendes an:

zgrep anacron /var/log/cron.log.{9..1}* /var/log/cron.log | less

Der letzte Eintrag auf einem System ist für mich der 4. November 2008.

zgrep anacron /var/log/syslog.{9..1}* /var/log/syslog | less

Die Einträge reichen für mich vom 28. Dezember bis 4. Januar.

cat /etc/crontab

Sie sollten ähnliche Einträge für täglich, wöchentlich und monatlich sehen:

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

Und dies sollte eine Reihe von Dateien zeigen:

ls -l /etc/cron.{daily,weekly,monthly}

In habe /etc/cron.dailyich sowohl logrotate als auch sysklogd.

Und wenn Sie das tun:

ps auxww | grep [c]ron

Sie sollten sehen, dass der cronDämon ausgeführt wird.

Wenn Sie tun:

cat /etc/cron.daily/sysklogd

Sie sollten ein paar Zeilen sehen, die mit enden || exit 0- überprüfen Sie, ob die Dateien vorhanden sind und für diejenigen, mit test -xdenen sie ausführbar sind. Einige von ihnen sind nicht für mich, da ich logrotate verwende.

Überprüfen Sie, ob syslogd ausgeführt wird:

ps -C syslogd

Überprüfen Sie, ob savelog vorhanden und ausführbar ist:

ls -l $(type -p savelog)

Das ist alles, woran ich im Moment denken kann.


4
Denken Sie außerdem daran, dass Anacron im Wesentlichen nur für Cron
konfiguriert ist

10

Versuchen Sie zu laufen:

sudo run-parts --test /etc/cron.daily

Diese Zeile zeigt an, ob Ihr neues Skript zu den "erkannten" gehört. Zum Beispiel könnte es sein, dass das Skript einen falschen Namen hat, das Exec-Flag fehlt oder Berechtigungsprobleme usw.

Auf diese Weise habe ich herausgefunden, dass das Run-Parts- Tool (von cron verwendet) kein .sh- Suffix mag


2

Ich habe ein Ubunutu 8.04 VPS (mit Plesk), auf dem Anacron installiert, falsch konfiguriert und nicht ausgeführt wurde. apt-get reinstall hat alle relevanten Dateien neu erstellt.

Danach musste ich nur noch einen Eintrag in die stündliche Crontab einfügen, um Anacron zu starten und es seine Arbeit machen zu lassen.

Das Skript, das ich in cron.hourly / eingefügt habe, war gerecht

#!bin/bash
/path/to/anacron -s 

1

Versuchen Sie, den Dienst neu zu starten. Gibt dies einen Fehler aus?


0

Einige der Linux-Crones sind schuppig. Wir verwenden Cfengine, um Cron neu zu starten, und Cron, um Cfengine auf geschäftskritische Dinge zu untersuchen. Heutzutage stürzt jedoch keiner merklich ab. Nicht wie in den 90ern, als Cron jeden Tag abstürzte :-)


0

Wenn der Name des Skripts im /etc/cron.{daily,weekly,monthly}/Ordner einen Punkt enthält, scheint es nicht ausgeführt zu werden. Versuchen Sie, es in etwas ohne Punkt umzubenennen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.