the nullfactory – Tail using PowerShell

Tail using PowerShell

07 Oct 2017| PowerShell

Rozważmy scenariusz, w którym diagnozujemy problem na serwerze produkcyjnym. Włączyłeś logi i masz wszystko skonfigurowane, aby odtworzyć problem. Kolejkuj wyzwalacz, aby wywołać nieprawidłowo działającą operację i w końcu czekaj na aktualizację pliku dziennika.

Gapienie się na zmianę rozmiaru pliku dziennika nie jest przyjemne, podobnie jak okresowe odświeżanie pliku. Chcę być powiadamiany w momencie, gdy dziennik zostanie zaktualizowany w czasie rzeczywistym. To jest dokładnie to, co robi program taki jak tail – monitoruje plik pod kątem zmian i wyprowadza ogon pliku.

Istnieje kilka wcieleń ogona, które wykonują pracę doskonale, ale biorąc pod uwagę, że było to środowisko produkcyjne, nie byłem na bieżąco z instalowaniem nowych narzędzi.

Na szczęście cmdlet Get-Content PowerShell ma wbudowaną tę funkcjonalność. To jest combo, na którym ostatecznie się skupiłem:

Get-Content log.txt -tail 5 -wait

Argument -tail przyjmuje liczbę linii do pokazania od końca pliku i -wait określa, że powinien kontynuować monitorowanie pliku.

Przyznaje, że ta metoda nie ma możliwości podświetlania, które miałoby dedykowane narzędzie, ale to całkiem przydatna opcja do posiadania w szczypcie.

Wreszcie, zaoszczędź kilka uderzeń klawiszy, używając aliasu:

cat log.txt -tail 5 -wait

Update 2019-01-30: Niedawno miałem wymóg monitorowania pliku pod kątem jakiegoś tekstu, a następnie odnotowania znacznika czasu, kiedy został napisany. Jest on oparty na tym sugerowanym rozwiązaniu.

cat .\processed-users.txt -tail 5 -wait | ? { $_ -like ‘SEARCH_STRING_HERE’ } | % { Write-Host $(Get-Date -Format T) -noNewLine -ForegroundColor Blue; Write-Host ” $_” }

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.