SpamAssassin updaten per cron funzt nicht!

realdarkman71

Well-Known Member
Hallo Leute,

auf meinem root-Server läuft mit dem MTA (postfix) auch SpamAssassin. Per sa-update kann man ja SpamAssassin updaten. Das habe ich nun per cron automatisiert (erstmal mit der Option -D zum Checken), aber das funzt leider nicht, er sagt immer:

Code:
dbg: gpg: Searching for 'gpg'
dbg: util: current PATH is: /usr/bin:/bin
error: gpg required but not found!

Wenn ich das manuell starte, klappt das alles ohne Probleme:

Code:
dbg: gpg: Searching for 'gpg'
dbg: util: current PATH is: /sbin:/bin:/usr/sbin:/usr/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin
dbg: util: executable for gpg was found at /usr/local/bin/gpg
dbg: gpg: found /usr/local/bin/gpg

PATH ist dann aber auch länger, dadurch findet er gpg! Sind die Umgebungsvariablen denn bei der automatischen cron Ausführung anders? Wo kann ich das ändern bzw. gibt es eine config dafür?

Thx!
Chris
 
Das mache ich schon:

Code:
/usr/local/bin/sa-update -D && /usr/local/etc/rc.d/sa-spamd restart

...aber trotzdem kommt es zu diesem Fehler, obwohl sich gpg auch in diesem Verzeichnis befindet! Das ist ja das Merkwürdige!
 
Wie waere es mit einem PATH in crontab?

PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:.........
 
Wird das vor dem Mounten ausgeführt? Kann ich mir eigentlich nicht vorstellen.
 
Hallo Leute,

auf meinem root-Server läuft mit dem MTA (postfix) auch SpamAssassin. Per sa-update kann man ja SpamAssassin updaten. Das habe ich nun per cron automatisiert (erstmal mit der Option -D zum Checken), aber das funzt leider nicht, er sagt immer:

Code:
dbg: gpg: Searching for 'gpg'
dbg: util: current PATH is: /usr/bin:/bin
error: gpg required but not found!

PATH ist dann aber auch länger, dadurch findet er gpg! Sind die Umgebungsvariablen denn bei der automatischen cron Ausführung anders?
Aus Sicherheitsgründen ist bei Ausführung durch cron(8) die Umgebungsvariable PATH fast leer. Damit klapprige Skripte trotzdem funktionieren kann man entweder den Skript ändern oder einen Wrapper schreiben, der die Umgebungsvariablen passend setzt.

a) Skript ändern:
Code:
dbg: gpg: Searching for 'gpg'
dbg: util: current PATH is: /usr/bin:/bin
error: gpg required but not found!
Hier kann sa-update gpg nicht finden. Also auf der Kommandozeile:
Code:
which gpg
und anschließend in sa-update alle Vorkommen von gpg mit dem vollständigen Pfad ersetzen.
b) Wrapperskript schreiben:
sa-update-wrapper
Code:
#!/bin/sh
PATH=$PATH:[I]<pfad-zu-gpg>[/I]"; export PATH
sa-update
und dieses Skript statt sa-update in der crontab eintragen.

Selbstverständlich könnte man in cron auch sämtliche notwendigen Pfade direkt eintragen -- dies würde jeoch das System sehr viel angreifbarer machen, weshalb man davon besser die Finger lässt.
 
Ich habe inzwischen selbst ein Skript geschrieben, das das Update durchführt. So wie das Deine Idee war! Danke! Funzt jetzt! Danke für Eure Hilfe!!!
 
Zurück
Oben