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
tail
müssen Sie ihm beispielsweise ein -f
Flag zuweisen, um ihm mitzuteilen, dass es den Dateien folgen soll?