Tail a PowerShell használatával
07 Oct 2017| PowerShell
Gondoljunk egy olyan forgatókönyvre, amelyben egy problémát diagnosztizál egy termelési kiszolgálón. Engedélyezted a naplókat, és mindent beállítottál a probléma reprodukálásához. Sorba állítja az indítót a hibásan viselkedő művelet meghívására, és végül megvárja, hogy a naplófájl frissüljön.
Nem szórakoztató a naplófájl méretének változását nézni, ahogy a fájl rendszeres frissítése sem. Szeretnék értesítést kapni abban a pillanatban, amikor a napló valós időben frissül. Pontosan ezt teszi egy olyan program, mint a tail
– figyeli a fájlt a változásokra, és kiadja a fájl farokrészét.
Van néhány inkarnációja a faroknak, amelyek tökéletesen elvégzik a feladatot, de mivel ez egy termelési környezet, nem tartottam fenn az új eszközök telepítését.
Szerencsére a Get-Content
PowerShell cmdlet beépített funkcióval rendelkezik. Ez az a kombináció, amire végül rátaláltam:
Get-Content log.txt -tail 5 -wait
A -tail
argumentum a fájl végétől megjelenítendő sorok számát veszi fel, és -wait
megadja, hogy továbbra is figyelje a fájlt.
Megengedi, hogy ez a módszer nem rendelkezik olyan kiemelési képességekkel, mint egy dedikált eszköz, de egy elég hasznos lehetőség, ha szükség van rá.
Végül néhány billentyűleütést megspórolhat az alias használatával:
cat log.txt -tail 5 -wait
Frissítve 2019-01-30: Nemrégiben felmerült bennem az igény, hogy figyeljek egy fájlt valamilyen szövegre, majd jegyezzem fel a szöveg írásának időbélyegét. Ez a javasolt megoldáson alapul.
cat .\processed-users.txt -tail 5 -wait | ? { $_ -like ‘SEARCH_STRING_HERE’ } | % { Write-Host $(Get-Date -Format T) -noNewLine -ForegroundColor Blue; Write-Host ” $_” }