Recursos Avançados do Comando Watch
Nesta etapa, você aprenderá sobre alguns recursos avançados do comando watch que podem tornar suas tarefas de monitoramento mais eficientes.
Vamos começar explorando a opção -t, que desliga o cabeçalho mostrando o comando e a hora atual:
watch -n 3 -t date
Observe que o cabeçalho agora está oculto, proporcionando uma exibição mais limpa, focada apenas na saída do comando. Isso é útil quando você deseja maximizar o espaço da tela para a saída.
Pressione Ctrl+C para sair.
Em seguida, vamos ver como usar watch com a opção -g ou --chgexit. Esta opção faz com que o watch saia quando a saída do comando muda:
touch ~/project/test_change.txt
watch -g -n 1 "ls -l ~/project/test_change.txt"
Enquanto este comando estiver em execução, abra um novo terminal e modifique o arquivo:
echo "hello" > ~/project/test_change.txt
O comando watch no primeiro terminal deve sair automaticamente quando detectar a mudança no arquivo.
Vamos criar um exemplo mais prático. Criaremos um script que simula um arquivo de log com erros ocasionais:
nano ~/project/simulate_logs.sh
No editor nano, digite o seguinte conteúdo:
#!/bin/bash
LOG_FILE=~/project/application.log
## Initialize log file
echo "Starting log simulation" > $LOG_FILE
## Generate simulated log entries
for i in {1..10}; do
echo "[$(date)] - INFO: Normal operation $i" >> $LOG_FILE
sleep 1
## Occasionally generate an error
if ((i % 3 == 0)); then
echo "[$(date)] - ERROR: Something went wrong!" >> $LOG_FILE
fi
done
echo "Log simulation complete" >> $LOG_FILE
Salve e saia do nano (Ctrl+O, Enter, Ctrl+X), depois torne o script executável:
chmod +x ~/project/simulate_logs.sh
Agora, vamos usar watch com grep para monitorar mensagens de erro no arquivo de log:
watch -n 1 "grep ERROR ~/project/application.log || echo 'No errors found'"
Em outro terminal, execute o script de simulação de log:
~/project/simulate_logs.sh
Observe como o primeiro terminal exibe quando as mensagens de erro aparecem no arquivo de log. Este é um exemplo prático de como usar watch para monitorar logs em tempo real.
Pressione Ctrl+C para sair do comando watch.
Finalmente, vamos ver como executar o watch em segundo plano e redirecionar sua saída para um arquivo:
watch -n 5 date > ~/project/date_output.txt 2>&1 &
Este comando executa o comando watch em segundo plano, atualizando a data a cada 5 segundos e salvando a saída em um arquivo. Você pode verificar o conteúdo do arquivo:
cat ~/project/date_output.txt
Para parar o processo watch em segundo plano, encontre seu PID e mate-o:
ps aux | grep "watch -n 5 date"
kill <PID> ## Substitua <PID> pelo número real do ID do processo
Esses exemplos demonstram a versatilidade do comando watch para várias tarefas de monitoramento.