the nullfactory – Tail using PowerShell

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 ” $_” }

Vastaa

Sähköpostiosoitettasi ei julkaista.