Tail using PowerShell
07.10.2017| PowerShell
Harkitse skenaariota, jossa olet diagnosoimassa ongelmaa tuotantopalvelimella. Olet ottanut lokit käyttöön ja saanut kaiken valmiiksi ongelman toistamiseksi. Asetat jonoon laukaisimen, joka kutsuu väärin käyttäytyvää toimintoa, ja lopuksi odotat, että lokitiedosto päivittyy.
Lokitiedoston koon muuttumisen tuijottaminen ei ole hauskaa eikä tiedoston päivittäminen määräajoin. Haluan saada ilmoituksen sillä hetkellä, kun loki päivittyy reaaliajassa. Juuri tämän tekee tail
:n kaltainen ohjelma – se tarkkailee tiedostoa muutosten varalta ja tulostaa tiedoston hännän.
Ei ole olemassa muutamia hännän inkarnaatioita, jotka hoitavat homman mainiosti, mutta koska kyseessä oli tuotantoympäristö, en pitänyt uusien työkalujen asentamisesta.
Onneksi PowerShellin komentokehotteessa Get-Content
on sisäänrakennettuna tämä toiminto. Tähän komboon päädyin lopulta:
Get-Content log.txt -tail 5 -wait
Argumentissa -tail
annetaan näytettävien rivien määrä tiedoston lopusta ja -wait
määritetään, että tiedoston seurantaa jatketaan.
Todennäköisesti tällä menetelmällä ei ole korostusominaisuuksia, joita erityistyökalulla olisi, mutta se on melko hyödyllinen vaihtoehto hätätilanteessa.
Loppujen lopuksi voit säästää muutaman näppäimenlyönnin käyttämällä aliaksia:
cat log.txt -tail 5 -wait
Päivitys 2019-01-30: Minulla oli hiljattain tarve seurata tiedostosta jotakin tekstiä ja merkitä sitten muistiin aikaleima siitä, milloin se on kirjoitettu. Se perustuu tähän ehdotettuun ratkaisuun.
cat .\processed-users.txt -tail 5 -wait | ? { $_ -like ‘SEARCH_STRING_HERE’ } } | % { Write-Host $(Get-Date -Format T) -noNewLine -ForegroundColor Blue; Write-Host ” $_” }