a nullfatória – Cauda usando PowerShell

Cauda usando PowerShell

07 Out 2017| PowerShell

Considerar um cenário onde você está diagnosticando um problema em um servidor de produção. Você ativou os logs e conseguiu configurar tudo para reproduzir o problema. Enfileirar o gatilho para invocar a operação de mau comportamento e finalmente esperar que o arquivo de log seja atualizado.

Atualizar no tamanho do arquivo de log para alterar não é divertido nem atualizar o arquivo periodicamente. Eu quero ser notificado no momento em que o log for atualizado em tempo real. Isto é exatamente o que um programa como tail faz – ele monitora o arquivo para alterações e sai o final do arquivo.

Existem algumas encarnações de final que fazem o trabalho perfeitamente bem, mas dado que este era um ambiente de produção eu não estava sempre instalando novas ferramentas.

Felizmente, o Get-Content PowerShell cmdlet tem esta funcionalidade embutida. Esta é a combinação que finalmente estabeleci:

Get-Content log.txt -tail 5 -wait

O argumento -tail leva o número de linhas a mostrar a partir do fim do ficheiro e -wait especifica que deve continuar a monitorizar o ficheiro.

Granted que este método não tem recursos de destaque que uma ferramenta dedicada teria, mas é uma opção bastante útil para ter em um pinch.

Finalmente, salve algumas teclas usando o alias:

cat log.txt -tail 5 -wait

Update 2019-01-30: Recentemente eu tive o requisito de monitorar um arquivo para algum texto e então anotar o carimbo de data de quando ele foi escrito. Ele é baseado nesta solução sugerida.

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

Deixe uma resposta

O seu endereço de email não será publicado.