lunedì 22 marzo 2021

PowerShell: Monitorare un file di testo in tempo reale

Spesso i sistemisti hanno la necessità di monitorare file di log rilevando eventuali modifiche in tempo reale. PowerShell permette di monitorare un file di testo visualizzano in tempo reale le modiche attraverso il cmdlet Get-Content.

Ad esempio
Get-Content C:\temp\log.txt -Wait

Il comando può essere utilizzato in tutte le versioni di PowerShell ma presenta un grosso limite: visualizza l'intero contenuto del file prima di visualizzare le nuove righe aggiunte. A partire dalla versione 3 di PowerShell (Windows 8 e successivi) al cmdlet è stato aggiunto un nuovo argomento -Tail che consente di iniziare a monitorare il file dalla fine e non mostrando prima il suo intero contenuto.

Ad esempio
Get-Content C:\temp\log.txt -Tail 0 -Wait
Il file inizierà ad essere monitorato dalla fine e non verrà mostrato prima il suo contenuto. Al parametro -Tail è possibile passare il numero di linee, alla fine del file, da includere nel monitoraggio e da visualizzare.
PowerShell, Get-Content
FIG 1 - PowerShell, Get-Content
Get-Content C:\temp\log.txt -Tail 3 -Wait
Visualizza le ultime 3 righe del file prima di visualizzare eventuali nuove righe aggiunte.

E' anche possibile filtrare le linee che contengono un testo specifico. Il comando
Get-Content C:\temp\log.txt  -Tail 0 -Wait | where { $_ -match "ERROR" }
visualizzerà solo le linee aggiunte alla fine del file che contengono la stringa ERROR.





Nessun commento:

Posta un commento

I messaggi sono soggetti a moderazione da parte dell'amministratore prima della loro pubblicazione.