• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

cron-Eintrag für sa-learn

Status
Für weitere Antworten geschlossen.

BiZNiZ

Member
Moin ...

... da ich noch nie mit diesen cron-jobs gearbeitet habe, stehe ich hier ein wenig dumm im Raume ...

Ich habe unter sloxhelp.org ein script gefunden, dass den spamassin trainieren soll ...

Die Ordner sind angelegt, das scrip auf den Server kopiert und die rechte vergeben und nun stehe ich da ...

Wie richte ich dieses Script nun so ein, dass es täglich um 06:00 Uhr startet???

Code:
man cron
hat mir noch nicht wirklich weitergeholfen

und bei der Suche im Forum bin ich nur auf Einträge gestoßen, die mir nicht ganz klar waren ... wahrscheinlich eher ein Verständnisproblem meinerseits.

Wenn ich das so halbwegs richtig verstanden habe, muss ich für "root" ein crontab anlegen und den entsprechenden Eintrag dort machen ...
Nur 1.: wie muss dieser Eintrag aussehen, wenn täglich um 06:00 das script /root/sa-train.sh gestartet werden soll ???
und 2.: wo muss ich noch Einstellungen vornehmen ???
 

stka

Guru
versuch mal "man 5 crontab" ;-)

Für dein skript:
als root
crontab -e <-- startet den vi

0 6 * * * /root/sa-train.sh
 
OP
B

BiZNiZ

Member
Danke erst einmal für den Hinweis mit man 5 crontab ...

habe nun den Eintrag gemacht ...

Jetzt wollte ichdas script mal manuell testen und bekomme immer "bad interpreter: no such file or directory"

habe das script nur von einer website kopiert, eingefügt, die OrdnerNamen angepasst und als "sa-train.sh" gespeichert.

Ist da was falsch dran ???

Hier mal das script:

Code:
#!/bin/bash

# thanks to Holger Dunkel for basis of this script
# culled from the suse-slox-e@suse.com mailing list

# run sa-learn on Spam mailbox
#
spamdir=auchSPAM
dir=/var/spool/imap/$spamdir
c=0
if [ -d $dir ];then
cd $dir && echo now in $dir
for i in *. ; do
if [ -f $i ]; then
cat $i | su - nobody -c "sa-learn --showdots --spam --single ";
echo $i, $c
# this removes emails from the shared folder
rm -v $i
let c++
fi
done
# as user cyrus reconstruct the maildir files
su - cyrus -c "reconstruct $spamdir"
echo "processed $c mails"
else
echo $dir not found
exit 1
fi

# run sa-learn on No-Spam mailbox
#
hamdir=keinSPAM
dir=/var/spool/imap/$hamdir
c=0
if [ -d $dir ];then
cd $dir && echo now in $dir
for i in *. ; do
if [ -f $i ]; then
cat $i | su - nobody -c "sa-learn --showdots --ham --single ";
echo $i, $c
# this removes emails from the shared folder
rm -v $i
let c++
fi
done
# as user cyrus reconstruct the maildir files
su - cyrus -c "reconstruct $hamdir"
echo "processed $c mails"
else
echo $dir not found
exit 1
fi

# integrate learned stuff
#
su - nobody -c "sa-learn --rebuild"

Was mache ich hier falsch ???
 
OP
B

BiZNiZ

Member
Ich Dussel wusste gar nicht, dass es dieses Tool gibt ...

Einmal drübergelaufen und schon funzt es ...

thnax ;)
 
Status
Für weitere Antworten geschlossen.
Oben