spamassassin cronjob mit sleep 3600

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

spamassassin cronjob mit sleep 3600

Beitrag von scientific » 25.06.2017 21:29:20

Hi Leute!

Ich habe heute festgestellt, als ich systemd-analyze ausgeführt habe, dass der Bootprozess noch nicht abgeschlossen war, obwohl ich mich auf gdm schon einloggen konnte.

Hab dann weitergebohrt und bin draufgekommen, dass spamassassin beim update seiner Regeln für den cronjob ein Timeout von 3600 Sekunden eingebaut hat.

Code: Alles auswählen

# Sleep for up to 3600 seconds if not running interactively
if [ ! -t 0 ]; then
    RANGE=3600
    number=`od -vAn -N2 -tu4 < /dev/urandom`
    number=`expr $number "%" $RANGE`
    sleep $number
fi
Das kommt bevor das eigentliche Update mit sa-update ausgeführt wird. Im Cronjob wird das eigentlich immer nichtinteraktiv ausgeführt. Was soll diese Verzögerung von bis zu einer Stunde? Ein Würgherum, damit das Netzwerk auch wirklich vorhanden ist???

Oder hat jemand eine andere Idee?

lg scientific
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

Benutzeravatar
MSfree
Beiträge: 10773
Registriert: 25.09.2007 19:59:30

Re: spamassassin cronjob mit sleep 3600

Beitrag von MSfree » 25.06.2017 23:03:55

scientific hat geschrieben:Hab dann weitergebohrt und bin draufgekommen, dass spamassassin beim update seiner Regeln für den cronjob ein Timeout von 3600 Sekunden eingebaut hat.
Ich lese in dem Codefragment "bis zu 3600 Sekunden".
Es wird da eine Zufallszahl erzeugt, die zwichen 0 und 3599 liegt. Möglicherweise will man damit erreichen, daß der Updateserver nicht zu jeder vollen Stunde gleichzeitig von zigtausenden Clients kontaktiert wird. Man verteilt die Clientanfragen damit zufällig über den Zeiraum einer Stunde.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: spamassassin cronjob mit sleep 3600

Beitrag von rendegast » 26.06.2017 09:22:57

Ein solches Konstrukt findet sich auch in
/etc/cron.daily/apt[-compat]
resp. in systemd-Form als apt-daily[-upgrade].timer.

Unter cron führt sowas zu einer entsprechenden Verzögerung der danach ausgeführten Jobs.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

scientific
Beiträge: 3020
Registriert: 03.11.2009 13:45:23
Lizenz eigener Beiträge: Artistic Lizenz
Kontaktdaten:

Re: spamassassin cronjob mit sleep 3600

Beitrag von scientific » 26.06.2017 13:19:19

Ok. Das klingt logisch.
Aber schön ist das nicht. Das verzögert Boot-Analysen nämlich auch um bis zu einer Stunde...

Gibts da nicht eine Option AccuracySec oder so ähnlich im systemd-timer, welche den Startzeitpunkt auch zufällig in ein Zeitfenster der angegebenen Größe um den eigentlichen Startpunkt verteilt?

Das wär doch die weit bessere Lösung für Systeme mit systemd...
dann putze ich hier mal nur...

Eine Auswahl meiner Skripte und systemd-units.
https://github.com/xundeenergie

auch als Debian-Repo für Testing einbindbar:
deb http://debian.xundeenergie.at/xundeenergie testing main

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: spamassassin cronjob mit sleep 3600

Beitrag von rendegast » 26.06.2017 18:23:02

Du könntest einen wish-Bug melden, mit patch derart

Code: Alles auswählen

--- /etc/cron.daily/spamassassin	2016-10-30 17:39:27.000000000 +0100
+++ /etc/cron.daily/spamassassin_fix	2017-06-26 18:18:37.507423948 +0200
@@ -7,6 +7,7 @@
 # should do the job.
 
 CRON=0
+RANGE=3600
 
 test -f /etc/default/spamassassin && . /etc/default/spamassassin
 
@@ -63,7 +64,7 @@
 
 # Sleep for up to 3600 seconds if not running interactively
 if [ ! -t 0 ]; then
-    RANGE=3600
+    #RANGE=3600
     number=`od -vAn -N2 -tu4 < /dev/urandom`
     number=`expr $number "%" $RANGE`
     sleep $number
dadurch kann RANGE in /etc/default/spamassassin gesetzt werden.

Alternativ analog dem apt-daily.timer einen für den Job von spamassasin schreiben.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten