tail -f
ist sehr nützlich, um das Hinzufügen von Protokolldateien in Echtzeit zu sehen. Es ermöglicht das Ansehen aller Protokolldateien in bestimmten Ordnern, Beispiel:tail -f abc.log mydir/*.log
Probleme:
abc.log
wird für immer ignoriert, wenn es zum Zeitpunkt des Befehlsstarts nicht existiert (was meistens der Fall ist, da ich normalerweise alle Protokolldateien lösche, bevor ich den Befehl starte tail -f
.*
expandiert nur beim Start, was bedeutet, dass wenn nach 5 Minuten eine neue Datei im Verzeichnis auftaucht, diese ignoriert wird.Das Tailing mehrerer Dateien könnte zu einer solchen Ausgabe führen, wenn beispielsweise a.log geschrieben wird, dann b.log und dann wieder a.log:
==> a.log <==
bla1
bla2
==> b.log <==
blb1
blb2
==> a.log <==
bla3
bla4
So tail
funktioniert es, aber eine ähnliche Formatierung ist auch in Ordnung.
Obwohl die Ausgabe nicht genau wie tail -f
ist, funktioniert der Multitail- Befehl, der in mehreren Distributionen im gleichnamigen Paket enthalten ist, recht gut. Das Beispiel
multitail --retry -i abc.log -q 5 'mydir/*.log'
versucht erneut, die erste Datei zu öffnen, und testet alle 5 Sekunden auf neue Dateien, die dem Glob-Muster entsprechen, und tail -f
zeigt jede Datei in einem Fenster in Ihrem Terminal an. Es gibt viele Konfigurationsmöglichkeiten.
Izzy
CPerkins
while [ ! -f "MyFile" ]; do echo "waiting"; sleep 10; done; tail -f MyFile
Für Ihre Anforderung „Für Ordner“ müssen Sie erklären, was passieren soll, wenn/wenn es mehr als eine solche Datei gibt.Nikolaus Raul
CPerkins