Ich möchte die Protokolldatei meiner Anwendung überwachen, die jedoch nicht lokal, sondern auf einer SaaS-Plattform funktioniert und über HTTP und WebDAV verfügbar gemacht wird. Ein Äquivalent von tail -f, das für URLs funktioniert, würde für mich also großartige Arbeit leisten.
PS Wenn Sie andere Tools kennen, die Remote-Dateien über HTTP überwachen können, kann dies ebenfalls hilfreich sein. Vielen Dank
wget -N http://somewhere/something
Datei nur herunterladen, wenn sie neuer als die zuvor heruntergeladene ist, oder umwget -O - http://somewhere/something
die Datei an stdout umzuleiten.Antworten:
Möglicherweise gibt es dafür ein spezielles Tool, aber Sie können es auch mit wget tun. Öffnen Sie ein Terminal und führen Sie diesen Befehl aus:
Dadurch wird die Protokolldatei alle zwei Sekunden heruntergeladen und gespeichert, um die Ausgabe an das anzuhängen
log.txt
, was bereits vorhanden ist (-c
bedeutet, dass der Download fortgesetzt wird und-a
die Ausgabe an den angegebenen Dateinamen angehängt wird). Der-o
leitet Fehlermeldungen an weiter/dev/null/
.Jetzt haben Sie eine lokale Kopie von log.txt und können darauf ausgeführt werden
tail -f
:quelle
tail -f
Dateiänderungen nur aktualisiert werden, wenn ein anderer Prozess den Server aktiv nach Verzeichnisaktualisierungen fragt (eine Ebenels
scheint ausreichend zu sein). Das Problemtail -f
beruht auf inotify, und inotify scheint nicht über davfs2 zu funktionieren.tail
hängt nicht von inotify ab. Es liest einfach die Datei, sucht zurück und liest erneut. Wenn es mit davfs nicht gut funktioniert, hängt das davon ab, wie davfs selbst funktioniert. Vermutlich werden Informationen nur aktualisiert, wenn etwas das Verzeichnis aktiv liest, und datail
die Datei geöffnet bleibt, wird sie nicht ausgelöst. Oder so ähnlich.Ich habe die gleiche Frage hier mit einem vollständigen Shell-Skript beantwortet , das die URL als Argument verwendet und
tail -f
es ist. Hier ist eine Kopie dieser Antwort wörtlich:Dies wird es tun:
Es ist nicht sehr freundlich auf dem Webserver. Sie könnten das
true
durchsleep 1
weniger ressourcenintensiv ersetzen .Wie
tail -f
müssen Sie,^C
wenn Sie fertig sind, die Ausgabe zu sehen, auch wenn die Ausgabe fertig ist.quelle
Curl mit Range Option in Kombination mit Uhr kann verwendet werden, um dies zu erreichen:
Beispielsweise
Dadurch werden alle 30 Sekunden die letzten 2000 Bytes des Protokolls abgerufen.
Hinweis: Verwenden Sie für selbstsigniertes https die Option --insecure curl
quelle