![Tail -f zuletzt geänderte Datei im Ordner](https://rvso.com/image/1585798/Tail%20-f%20zuletzt%20ge%C3%A4nderte%20Datei%20im%20Ordner.png)
Ich versuche, tail -f
eine Protokolldatei in einem bestimmten Ordner zu verfolgen. Ich kann das mit dem einfachen Befehl tun, tail -f [path to file]
aber gibt es eine Möglichkeit, einen Befehl zu haben, der ausgeführt wird und die neueste/zuletzt geänderte Datei in einem Ordner verfolgt? Ich bin auf diesem Gebiet keineswegs ein Experte, daher ist jede Hilfe sehr willkommen.
Antwort1
Sie können die ls -tp | sort | grep -v / | tail -n 1
Befehle ausführen und diese durch einenfor
Schleife, um den tail -F
Befehl dann nur für die neueste Datei auszuführen und sie auf Inhaltsänderungen zu überwachen. Sie können ls -tpr | grep -v / | tail -n 1
stattdessen auch die Befehle in Betracht ziehen.
for VAR in $(ls -tp | sort | grep -v / | tail -n 1); do tail -F $VAR; done
oder
for VAR in $(ls -tpr | grep -v / | tail -n 1); do tail -F $VAR; done
Weitere Ressourcen
-
-t sort by modification time, newest first -p, --indicator-style=slash append / indicator to directories -r, --reverse reverse order while sorting
-
-v, --invert-match Invert the sense of matching, to select non-matching lines. (-v is specified by POSIX .)
-
-n, --lines=[+]NUM output the last NUM lines, instead of the last 10; or use -n +NUM to output starting with line NUM
Antwort2
Du könntest benutzen Mehrschwänzig, als Standardpaket auf vielen Distributionen verfügbar.
Beispiel 1: Zwei Logdateien in einem Fenster mit unterschiedlichen Farben zusammenführen
multitail -ci green /var/log/yum.log -ci yellow -I /var/log/mysqld.log
Beispiel 2: Anzeige von fünf Logdateien, Zusammenführung von zwei in einer Spalte
multitail -s 2 -sn 1,3 /var/log/mysqld.log -I /var/log/xferlog /var/log/monitorix /var/log/ajenti.log /var/log/yum.log
Quelle: MultiTail – Mehrere Dateien gleichzeitig in einem einzigen Linux-Terminal überwachen.