Hi,
Andre Bauer monotek@freakmail.de (Di 06 Sep 2005 18:26:42 CEST):
Hallo. Ich erhalte die Fehlermeldung, dass /tmp/fax2mail nicht gelöscht werden konte, weil es nicht existiert. Das Problem scheint irgendwo bei csplit zu liegen. Ich komm aber nicht drauf wo es genau klemmt?
Ok, dann ist also Die 'for fax in ...'--Schleife nicht einmal ausgeführt worden, weil sonst, egal, ob mimedecode und die anderen Konsorten gefunden werden, je wenigstens /tmp/mail2fax angelegt worden wäre (das tut die Shell, *bevor* sie merkt, daß die entsprechende Zeile vielleicht garnicht gehen kann.
Warum eigentlich '/usr/bin/csplit' und nicht einfach 'csplit' -- hast Du noch andere davon?
Setze lieber PATH, wenn Du Dich auf bestimmte Dinge verlassen willst. Oder noch 'eleganter': csplit() { /usr/bin/csplit "$@"; } Aber das hat mit Deinem Problem ja nichts zu tun.
#!/bin/sh
#config frommail="ich@bla.de" # for csplit dialprefix="0"
# script if [ -e /var/mail/faxmaster ]; then
/usr/bin/csplit -f fax -n 3 -k -s -z /var/mail/faxmaster "/From ${frommail} /" {*}
In welchem Verzeichnis bist Du eigentlich? Wenn Cron Deinen Script startet, ist er in ... ja - was sagen die Experten, ich denke in ~root ...
Wenn Du das Script per Hand startest, bist Du vielleicht zufällig in /var/spool/hylafax/bin? Denn csplit legt die resultierenden Files ins *aktuelle* Verzeichnis.
for fax in `ls /var/spool/hylafax/bin | grep fax[0-9] | sed 's/fax//'` do
cat /var/spool/hylafax/bin/fax${fax} | mimedecode | /var/spool/hylafax/bin/appendheaders.pl > /tmp/mail2fax
subject=`grep .*Subject:.*[Ticket#:.[0-9]] /tmp/mail2fax`
nr=`echo $subject | sed 's/Subject:.*[Ticket#: [0-9]{16}] //'`
cat /tmp/mail2fax | sed '1,/^$/d' | head -n -20 | a2ps -1 -c -q -B --borders=no -o - | sendfax -d ${dialprefix}${nr}
rm /var/spool/hylafax/bin/fax${fax}
done
rm /tmp/mail2fax /var/mail/faxmaster
Das ist nach Schleifen-Ende. Also wenn das File fehlt, gab's keine Schleife. Wie oben erklärt. Natürlich kann das auch dann passieren, wenn das Script funktioniert, denke ich. 'rm -f' wirkt hier Wunder.
Heiko