Amavis Cron Fehler

brusau

Registered User
Bekomme täglich den Fehler zugeschickt.

Code:
run-parts: /etc/cron.daily/amavisd-new exited with return code 1

Code:
test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
liefert den.

Wenn ich die Befehle von amavis-new durchgehe finde ich keinen der einen Fehler verursaht.

Evtl. hat einer einen kleinen Tipp für mich, da die Suche nichts weiter gebracht hat.

System: Debian5/ISPCP /MaiaMailguard

Crossposting im ISPCP Forum
 
Code:
#!/bin/sh
#
#  Daily maintenance for amavisd-new
#  $Id: amavisd-new.cron.daily 930 2006-08-10 13:38:45Z hmh $
#
test -e /usr/sbin/amavisd-new-cronjob && exec /usr/sbin/amavisd-new-cronjob sa-clean

die amavisd-new-cronjob
Code:
#!/bin/sh

# amavisd-new cronjob helper
#
# Run it as root or as the amavis user
#
# First parameter specifies which cronjob routine to run:
#               sa-sync:        spamassassin fast sync
#               sa-clean:       spamassassin cleanup

test -e /usr/bin/sa-learn || exit 0
test -e /usr/sbin/amavisd-new || exit 0

SUUSER="amavis"

set -e
umask 022

# WATCH OUT FOR PROPER QUOTING LEVEL WHEN CALLING THIS!
do_amavis_cmd() {
        if [ "$(id -u -n)" != "${SUUSER}" ]; then
                exec /bin/su - "${SUUSER}" -c "$*"
        else
                # to get the same quoting level as the su path
                CMD="$*"
                exec ${CMD}
        fi
}

case $1 in
        sa-sync)
                do_amavis_cmd "/usr/bin/sa-learn --sync >/dev/null"
                ;;
        sa-clean)
                do_amavis_cmd "/usr/bin/sa-learn --sync --force-expire >/dev/null"
                ;;
        *)
                echo "$0: unknown cron routine $1" >&2
                exit 1
                ;;
esac

exit 0
 
hi,

versuch mal den teil aus dem Script manuell (als root) auszuführen:

Code:
su - "amavis" -c "/usr/bin/sa-learn --sync --force-expire >/dev/null"

ich meine auch mal was bzgl. nem fehler in zusammenhang mit use_bayes in der spamassassin-config gelesen zu haben... aber poste erstmal die eventuelle fehlerausgabe des obigen befehls...

gruss,
strowi
 
Ignorieren wollte ich den Fehler weniger, aber so wie das aussieht ist der Fehler nur über den Cron.

Per Console kann ich diesen nicht reproduzieren.
 
Hmm... könnte ganz logisch sein. Änder den Amavis-Cron mal um:

Code:
test -e /usr/sbin/amavisd-new-cronjob && /usr/sbin/amavisd-new-cronjob sa-clean
 
Code:
/etc/cron.daily# test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
run-parts: /etc/cron.daily/amavisd-new exited with return code 1

selbes Resultat wieder
 
mhh hatte gestern wohl tomaten auf den augen...
das exec sollte aber doch eigentlich keinen grossen Unterschied machen... falls doch lass ich mich gerne belehren.

ansonsten teste mal den Rückgabewert von sa-learn:

Code:
su - "amavis" -c "/usr/bin/sa-learn --sync --force-expire; echo $?"

kommt hier was anderes als ne 0 dann liegt der Fehler mit ziemlicher sicherheit an diesem Kommando.... dann starte obiges mal mit

Code:
su - "amavis" -c "/usr/bin/sa-learn --sync --force-expire -D"

oder schau in den spamassassin logs (/var/log/mail.log) nach ob dort Fehler von sa-learn auftauchen...

hier mal ein etwas älterer Bug, könnte aber trotzdem passen:
https://bugs.launchpad.net/ubuntu/+source/amavisd-new/+bug/165184


PS: hast du sa-learn mal als root ausgeführt? dann stimmen evtl. die Zugriffsrechte für die bayes-datenbank nicht mehr...

ansonten kannst du mich auch gerne via jabber erreichen "forennick"@hasnoname.de.
 
das exec sollte aber doch eigentlich keinen grossen Unterschied machen... falls doch lass ich mich gerne belehren.

Hatte es gerade nur mal auf ner Teststellung getestet und mit "exec" hat es mir mein xterm abgeschossen gehabt. Reproduzierbar ;)
 
naja.. gut... "man exec" sagt "exec command" _ersetzt_ die aktuelle shell ohne neuen Prozess zu erstellen, daher wundert es mich nicht, dass das xterm verschwindet..;)

@brusau: was sagt denn "ls -al /bin/sh" ?
 
Last edited by a moderator:
mhh wenn amavis auch /bin/bash als shell nutzt (grep amavis /etc/passwd)...
und sonst keine Fehler zurückgegeben werden...

su - "amavis" -c "/usr/bin/sa-learn --sync --force-expire -D20"

bzw.

su - "amavis" -s /bin/bash -c "/usr/bin/sa-learn --sync --force-expire -D20"

sonst wüsste ich ohne weitere logs langsam auch nicht mehr was man machen könnte ausser die bugtracker zu durchsuchen..
 
Danke für den Tip mit den Rechten

Stand irgendwie auf dem Schlauch

usermod -s /bin/sh amavis und es geht.

Frage mich nur warum amavis die Rechte nicht hatte.
 
mhh ok, dann hatte amavis vorher vermutlich garkeine shell zugeordnet...
sicherer wäre es aber wohl, das -s /bin/sh an das su ranzuhängen, so dass amavis nur dann eine shell hat..

freut mich geholfen zu haben..
Schönes WE alle zusammen!
 
Danke es läuft nun ohne Fehler durch

aber an den Befehl -s /bin/sh anhängen brachte nix

exec /bin/su - "${SUUSER}" -c -s /bin/sh "$*"

Schönes ESC Wochenende noch
 
Back
Top