Copying sources and texts (also in parts) for publishing without our permission is NOT ALLOWED. We are fed up with finding our work on other sites (like stackoverflow).
Das Kopieren von Quellcode und Texten (auch in Auszügen) ist nicht erlaubt. Wir haben es gründlich satt, unsere Arbeit auf anderen Webseiten zu finden.

Copying for non-public usage is allowed.           Das private Kopieren und Benutzen ist natürlich erlaubt und erwünscht.
20. Mrz 2012
Teaser

Linux: Dovecot Server beendet sich von selbst automatisch (“dovecot: Fatal: Time just moved backwards by x seconds.”)

In den Mail-Logs finden Sie folgende Meldung:

dovecot: Fatal: Time just moved backwards by x seconds. This might cause a lot of problems, so I'll just kill myself now.

Dann beendet sich Ihr Dovecot-Mailserver und Sie können sich nicht mehr mit Ihrem Postfach verbinden.

Grund ist eine Zeitkorrektur auf Ihrem Server (Rechner), welche “in die Vergangenheit” geht. D.h. die Zeit wird zurückgestellt – ob um wenige Sekunden oder mehr ist irrelavant: Der Dovecot Server bemerkt diese Umstellung und beendet sich selbst automatisch.

Lösung / Behebung des Problems

Sie können den Dovecot Server regelmäßig prüfen lassen. Sollte dabei bemerkt werden, dass der DoveCot Mailserver nicht mehr läuft, wird er automatisch wieder gestartet:

nano /usr/local/sbin/dovecot_check_restart.sh
#!/bin/sh

HOST='localhost'
#PORT=110
PORT=143
#HP=@$HOST:$PORT
HP=:$PORT

echo 'Checking to see if Dovecot is up...'
if ( /usr/sbin/lsof -Pni $HP | grep "$PORT (LISTEN)" 2>&1 >/dev/null ); then
  echo 'Dovecot is up';
else
  echo 'Dovecot is down, restarting...';
  /etc/init.d/dovecot restart
  logger -p mail.info dovecot_check_restart.sh restarting Dovecot
fi

Hinweis zu aktuelleren Linux-Versionen
Es sollte der Pfad zur “lsof” überprüft werden, denn dieser kann unterschiedlich sein. Dann sollte die Zeile 9 oben entsprechend angepasst werden:

if ( /usr/sbin/lsof -Pni $HP | grep "$PORT (LISTEN)" 2>&1 >/dev/null ); then

Hinweis bei SSL Verbindungen zum Mailserver
Setzen Sie den richtigen Port in Zeile 5:

PORT=993

Dann den Aufruf des o.a. Scriptes erlauben (“chmod +x”) und das Script als CronJob einrichten:

chmod +x /usr/local/sbin/dovecot_check_restart.sh
crontab -e

Und dort folgende Zeile anfügen:

* * * * * /usr/local/sbin/dovecot_check_restart.sh 2>&1 > /dev/null

Fertig.

Mehr Informationen finden Sie auch unter http://wiki.dovecot.org/TimeMovedBackwards

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

dreizehn + 16 =