PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit " tail -f "



Enterprise
14-03-2004, 09:15
Hallo !!!

Habe ein kleines Problem mit dem tail Befehl.
tail -f /var/log/messages >> liste1.txt &
Das funktioniert so weit.
Alle zwei Minuten schaut mein Script auf die liste1.txt und moved
den Inhalt in eine andere Datei.
Danach ist liste1.txt wieder auf 0 byte , und tail schreibt nichts meher hinein ???
Hat jamnd eine Idee wie ich das lösen könnte.

mfg

Enterprise

Gartenzwerg
14-03-2004, 09:23
hi,
wieso benennst du die Datei um? Du kannst diese dann doch theoretisch auch mit tail auslesen oder?
Oder du machst etwas in dieser Art: "cat liste1.txt > neueDatei.txt". Den Dateinamen für die neue Datei kannst du dann ja alle zwei Minuten ändern, z.b. mit der aktellen Zeit o.ä.

Tschau Gartenzwerg

sticky bit
16-03-2004, 14:53
Original geschrieben von Enterprise
Danach ist liste1.txt wieder auf 0 byte , und tail schreibt nichts meher hinein ???
Liest du nur den Inhalt der Datei und Löscht danch den Inhalt oder löscht du die Datei und erstellst sie neu? Bei zweiterem würds mich nicht wundern wenn das nicht mer hinhaut, da da meiner Meinung nach wohl dann der File-Ahndle den tail hat auch ungültig wird und es dann ins nirgendwo schreibt...

Enterprise
16-03-2004, 19:44
Nein !!!
Ich sende den Inhalt in list1.txt.
Den verarbeite ich mit einem Script und schreibe

Datei=liste1.txt
WORK=$DATEI.work
mv $DATEI $WORK
touch $DATEI
...Script
rm $WORK

Dann ist liste1.txt wieder auf 0 Byte
und tail geht dann nicht mehr ???

sticky bit
17-03-2004, 08:43
Jupp genau das meint ich du verschiebst die Datei und dann machst du mit touch eine neue. Auch wenn die genau so heisst wie die alte liegt die auf nem anderen Inode und der Eintrag des Filehandles das tail hat in der entsprechenden Tabelle zeigt wahrscheinlich sogar noch auf die Datei die du verschoben hast, evtl. taucht dann da sogar die Ausgabe auf? Und der seek() in tail steht vielleicht zudem auch noch an einer falschen Stelle (> EOF). So könnt ich es mir zumindest erklären...