[Postfixbuch-users] SA-Learn
Christian Boltz
postfixbuch at cboltz.de
Di Nov 7 20:13:09 CET 2006
Hallo Lars, hallo Leute,
Am Dienstag, 7. November 2006 17:00 schrieb lars behrens:
> sorry, ist etwas OT, aber hier weiss sicher jemand antwort ;-)
>
> ich habe mir ein script gebastelt, welches in einen mailordner
> verschobene HAMs und SPAMs in den spamassassin verschiebt (sa-learn);
>
>
> zuerst habe ich mir dieses script gebastelt:
>
> #!/bin/bash
> if [ -f /home/spamverdacht/Maildir/cur/* ];then
[...]
> /home/adminz/scripte/lham: line 6: [: too many arguments
>
> Dasselbe script nur mit den Änderungen versehen - offensichtlich wird
> die Wildcard * im cur/ nicht akzeptiert, aber beim spam-lern-script
> geht es doch auch!
>
>
> hat jemand eine idee dazu ... ?
Ganz einfach: das Script funktioniert dann, wenn _keine_ oder _eine_
Datei im Verzeichnis liegt. Ab 2 Dateien kommt das typische "too many
arguments" von test aka [], weil der * zu mehreren Dateien expandiert
und test nur einen Dateinamen erwartet.
Üblicherweise empfehle ich in diesem Fall
for file in * ; do echo machwas mit "$file" ; done
aber da Du ja die Dateiliste nicht brauchst und das ganze Verzeichnis an
sa-learn verfütterst, empfiehlt sich hier
ls * && echo machwas
Auf Dein Script angewendet also
ls /home/ham/Maildir/cur/* && sa-learn [...] && mail [...]
exit 0
oder besser
ls /home/ham/Maildir/cur/* || exit 0
sa-learn [...] && mail [...]
weil Du dann Fehler in sa-learn mitbekommst.
Wenn alles läuft, kannst Du die Ausgabe von ls (ausnahmsweise incl.
STDERR, file not found interessiert hier nicht) ins Nirwana schicken:
ls /home/ham/Maildir/cur/* &>/dev/null
Gruß
Christian Boltz
PS @ Benjamin: Bis wirklich die Argumentliste für cat, rm usw. zu lang
wird, muss viel geschehen - AFAIK sind unter Linux Befehlszeilen mit
einer Länge von 16 oder sogar 32 kB (!) möglich.
Jedenfalls deutlich mehr als die 2 Dateien, die hier Probleme machen.
--
Benutze Groß-/Kleinschreibung:
ich habe liebe genossen. der junge sieht dir ungeheuer ähnlich.
wenn wir weise reden hören. helft den armen vögeln.
[Bertram Scharpf in suse-linux]
Mehr Informationen über die Mailingliste Postfixbuch-users