Chcę monitorować plik dziennika mojej aplikacji, która jednak nie działa lokalnie, ale na platformie SaaS i jest dostępna przez HTTP i WebDAV. Odpowiednik tail -f działający w przypadku adresów URL byłby dla mnie świetny.
PS Jeśli znasz jakieś inne narzędzia, które mogą monitorować zdalne pliki przez HTTP, może być również pomocne. Dzięki
wget -N http://somewhere/something
tego, aby pobrać plik tylko wtedy, gdy jest on nowszy niż pobrany wcześniej lub użyćwget -O - http://somewhere/something
do przekierowania pliku na standardowe wyjście.Odpowiedzi:
Może być do tego specjalne narzędzie, ale możesz to również zrobić za pomocą wget. Otwórz terminal i uruchom następujące polecenie:
Spowoduje to pobranie pliku dziennika co dwie sekundy i zapisanie go w
log.txt
dołączeniu wyniku do tego, co już tam jest (-c
oznacza kontynuowanie pobierania i-a
oznacza dołączenie wyniku do podanej nazwy pliku).-o
Przekierowuje komunikaty o błędach/dev/null/
.Więc teraz masz lokalną kopię pliku log.txt i możesz
tail -f
na nim uruchomić :źródło
tail -f
nie aktualizuje zmian plików, chyba że jest jakiś inny proces aktywnie proszący serwer o aktualizację katalogu (ls
wydaje się, że zwykły ). Problemtail -f
polega na inotify, a inotify nie działa na davfs2.tail
nie zależy od inotify. Po prostu czyta plik, szuka wstecz i czyta ponownie. Jeśli nie działa dobrze z davfs, będzie to zależało od tego, jak działa sam davfs. Prawdopodobnie aktualizuje informacje tylko wtedy, gdy coś aktywnie czyta katalog, a ponieważtail
plik jest otwarty, to go nie wyzwala. Lub coś podobnego.Odpowiedziałem na to samo pytanie tutaj za pomocą pełnego skryptu powłoki, który pobiera adres URL jako argument i
tail -f
to wszystko. Oto dosłownie kopia tej odpowiedzi:To zrobi to:
Nie jest zbyt przyjazny na serwerze internetowym. Można wymienić
true
zesleep 1
będzie mniej nakładów.Na przykład
tail -f
musisz^C
to zrobić, kiedy skończysz oglądać dane wyjściowe, nawet gdy dane wyjściowe są gotowe.źródło
Aby to osiągnąć, można użyć curl z opcją zasięgu w połączeniu z zegarkiem:
Na przykład
Spowoduje to pobranie ostatnich 2000 bajtów dziennika co 30 sekund.
Uwaga: w przypadku samopodpisanego https użyj opcji - niezabezpieczone zwijanie
źródło