Dateinamen aus LOGDATEI ziehen und danach Faxe benennen (HYLAFAX)

Post Reply
Message
Author
Michael

Dateinamen aus LOGDATEI ziehen und danach Faxe benennen (HYLAFAX)

#1 Post by Michael »

Hallo zusammen!

Habe folgenden vor:
Ich habe mir Scipte geschrieben, mit denen ich die empfangenen und versandten Fax von Hylafax konvertiere und sichere. Als Dateiname für die einzelnen Faxe dient mir die Nummer der Gegenstelle, sowie das Datum und die Uhrzeit.

Empfangene Faxe: (sollen so benannt werden)
49_66666_4444444_144015_Jul_19.pdf
Faxnummer Uhrzeit,Datum

Gesendete Faxe: (sollen so benannt werden)
an_49_66666_4444444_um_210635_Jul_19.pdf
An Faxnummer Uhrzeit,Datum

Die Informationen von wem bzw. an wen die Faxe wann kamen/gingen, ziehe ich aus den Logfiles die Hylafax anlegt. Hierzu benutze ich "grep" um die benötigten Zeilen zu erhalten. Eigentlich funktioniert ja schon alles und ich bin auch sehr zufrieden mit meinen Scripten, aber ich würde gerne den Teil des Scriptes der Benennung der Datei (Faxbeispiel oben) erledigt, verbessern.

Die Dateien, aus denen ich die Informationen mit "grep" ziehe lauten: (Nummer scheint fortlaufend zu sein)
c00000031
c00000032
c00000033

Der Inhalt sieht so aus: (beschränkt auf die wichtigen Zeilen)

Jul 05 13:42:15 fax00012.tif from 49 66666 4444444, route to <unspecified>, 1 pages in 0:12
Jul 06 15:44:44 fax00013.tif from 49 66666 4444444, route to <unspecified>, 1 pages in 0:15

(Hier ist schön das Quellfile fax00013.tif zu erkennen und das Datum, Uhrzeit und die Faxnummer.)

Der Teil des Script's, der diese Arbeit vornimmt sieht so aus: (Da ich noch nicht so fit in der Shellprogrammierung bin, denke ich, dass man mit ein paar Sätzen bestimmt zum gleichen Ergebnis kommen kann.)

Ich habe im unteren Script die Sache so gelöst, indem ich einfach die benötigten Informationen in Files geschrieben habe, und dann diese Files mit "paste" und zu einem neuen Script, das ich "moven.sh" genannt habe, zusammengebaut. Dieses Script starte ich dann automatisch und es nimmt dann die Umbenennumg vor.
Es geht sicherlich viel, viel einfacher, deshalb möchte ich an dieser Stelle hier nachfragen.

GESAMT_INFO=`grep "from" c* |grep recvq | cut -c1-22,66- | cut -c11- \
| awk '{ print $1, $2, $3, $9, $10, $11, $12, $13, $18, $19, $20}'`

DESTFILE=`echo "$GESAMT_INFO" | awk '{print $4 }' \
| cut -c7-14`
echo "$DESTFILE" >DESTFILE

TIMESTAMP=`echo "$GESAMT_INFO" | awk '{print $3 }' \
| tr -d ":" | cut -c1-6`
echo "$TIMESTAMP" >TIMESTAMP

REMOTE_TSI=`echo "$GESAMT_INFO"| awk '{print $6, $7, $8}' \
| tr -d "+" | tr -d "," | tr " " "_" `
echo "$REMOTE_TSI" >REMOTE_TSI

RECMONTH=`echo "$GESAMT_INFO" | awk '{print $1, $2}' \
| tr " " "_"`
echo "$RECMONTH" >RECMONTH

nr=0
for var in `cat DESTFILE`
do nr=`expr $nr + 1`
echo "cp -p" >>KOPIE
echo ".pdf" >>ENDUNG
echo "_" >>UNTERSTRICH
done

paste -d "" DESTFILE ENDUNG >PART1
paste -d " " KOPIE PART1 >PART2
paste -d "" REMOTE_TSI UNTERSTRICH >PART3
paste -d "" TIMESTAMP UNTERSTRICH RECMONTH ENDUNG >PART4
paste -d "" PART3 PART4 >PART5
paste -d " " PART2 PART5 >moven.sh
rm PART? 2>/dev/null
rm DESTFILE TIMESTAMP REMOTE_TSI KOPIE ENDUNG RECMONTH UNTERSTRICH 2>/dev/null

chmod 700 moven.sh
chown root.root moven.sh
echo "rm c???????? 2>/dev/null" >>moven.sh 2>/dev/null
echo "rm fax?????.pdf 2>/dev/null" >>moven.sh 2>/dev/null

Ich freue mich schon auf Hinweise, um sie dann zu testen. Man lernt gerne dazu.

Grüße
Michael

Faxenclown

Re: Dateinamen aus LOGDATEI ziehen und danach Faxe benennen (HYLAFAX)

#2 Post by Faxenclown »

Nur mal ein Hinweis am Rande:
Die Nummer der Gegenstelle ist ja ihre übermittelte Kennung, das könnte dann auch mal +49(0)40/123456 sein, oder auch 23../../ u.ä.
Vielleich bearbeitet das HylaFax schon irgendwie, aber wo zu, in einer Logdatei schadet es ja nicht.

Michael

Re: Dateinamen aus LOGDATEI ziehen und danach Faxe benennen (HYLAFAX)

#3 Post by Michael »

Hallo nochmal!

Das Script arbeitet schon seit ein paar Monaten perfekt.
Würde das aber gerne anders regelbn, da ich diesen Aufbau zu gigantisch finde.

AWK oder SED kenne ich noch nicht so gut, deshalb frage ich in diesem Forum nach einem Hinweis.

Grüße
Michael

Post Reply