Überwachen Sie mehrere Linux-Protokolldateien in Echtzeit

Überwachen Sie mehrere Linux-Protokolldateien in Echtzeit

Ich debugge eine Linux-Anwendung, die das Senden von Remote-Jobs ermöglicht und die Ausgabe jedes Jobs in einer neuen Datei protokolliert. Die Protokolldateipfade entsprechen:

/joblogs/job_*/JOB.LOG

wobei das Platzhalterzeichen die eindeutige Auftragsnummer darstellt.

Ich möchte jedes Jobprotokoll verfolgen können, einschließlich neuer Protokolle, die erstellt werden, nachdem ich den Befehl tail (oder was auch immer) ausgegeben habe. Ich dachte, ich könnte dies tun mitMehrschwanz, aber ich kann nicht herausfinden, welche Parameter ich verwenden soll. Zum Beispiel:

multitail -q 1 "/joblogs/job_*/JOB.LOG"

scheint für jede neue Protokolldatei genau wie gewünscht ein Fenster zu erstellen, zeigt im Dateifenster jedoch keine Ausgabe an.

Weiß jemand, wie das geht, entweder mit Multitail oder einem anderen Linux-Tool?

Antwort1

Da immer nur ein Job gleichzeitig aktiv ist, die Protokolle abgeschlossener Jobs nach /joblogs/completed_jobs/job_* verschoben werden und die Protokolle kurz sind, ist dieser einfache Workaround für den Moment ok:

while [ 1 == 1 ] ; do for joblog in `ls /joblogs/job_*/JOB.LOG`; do cat $joblog; done; sleep 10; done

Antwort2

Versuchen Sie, die Parameter und die Anführungszeichen zu entfernen

Antwort3

tailmüssen Sie ihm beispielsweise ein -fFlag zuweisen, um ihm mitzuteilen, dass es den Dateien folgen soll?

verwandte Informationen