the nullfactory – Tail using PowerShell

Tail using PowerShell

07 Oct 2017| PowerShell

Představte si scénář, kdy diagnostikujete problém na produkčním serveru. Povolíte protokoly a máte vše nastaveno tak, abyste mohli problém reprodukovat. Zařadíte spouštěč do fronty, který vyvolá chybně prováděnou operaci, a nakonec počkáte na aktualizaci souboru protokolu.

Čekat na změnu velikosti souboru protokolu není žádná legrace, stejně jako pravidelné obnovování souboru. Chci být upozorněn v okamžiku, kdy se protokol aktualizuje v reálném čase. Přesně to dělá program jako tail – sleduje změny v souboru a vypisuje jeho ocásek.

Existuje několik inkarnací ocásku, které tuto práci dělají naprosto v pořádku, ale vzhledem k tomu, že se jedná o produkční prostředí, nedržel jsem se instalace nových nástrojů.

Naštěstí má rutina Get-Content PowerShell tuto funkci zabudovanou. Nakonec jsem se rozhodl pro tuto kombinaci:

Get-Content log.txt -tail 5 -wait

Argument -tail přebírá počet řádků, které se mají zobrazit od konce souboru, a -wait určuje, že má soubor nadále sledovat.

Přiznávám, že tato metoda nemá možnosti zvýrazňování, které by měl specializovaný nástroj, ale je to docela užitečná možnost, kterou lze mít v nouzi k dispozici.

Nakonec ušetříte několik stisků kláves pomocí aliasu:

cat log.txt -tail 5 -wait

Aktualizace 2019-01-30: Nedávno jsem měl požadavek sledovat v souboru nějaký text a pak zaznamenat časové razítko, kdy byl zapsán. Vychází to z tohoto navrženého řešení.

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.