Comando watch: Monitorar Saída em Intervalos
O Que Você Vai Aprender
- Como reexecutar o mesmo comando em um intervalo fixo com
watch - As duas opções mais comuns:
-n(intervalo) e-d(destacar alterações) - Como evitar a armadilha das aspasEnvolver um texto entre aspas (' ou ") para que seja tratado como um único valor, por exemplo um que tenha espaços. ao usar pipes ou redirecionamento
- Como sair do watch corretamente (Ctrl + C)
Resumo Rápido
watch comandoreexecuta o comando a cada 2 segundos e atualiza a tela- Altere o intervalo com
watch -n 5 comando(a cada 5 segundos) - Destaque o que mudou com
watch -d comando - Ao usar um pipe
|, envolva tudo entre aspas:watch 'ls | wc -l'
Pré-requisitos (ambiente alvo)
- SO: Linux (Ubuntu / Debian / família RHEL, etc.)
watchvem no pacoteprocps-nge está pré-instalado na maioria das distros- Não está incluído no macOS por padrão (use
brew install watchse necessário)
1. O Que É o Comando watch?
Conclusão: watch reexecuta um comando dado em um intervalo fixo (2 segundos por padrão) e redesenha a saída mais recente na tela. É usado para monitorar mudanças.
ls -l repetidamente para ver se um arquivo está crescendo. Isso é exaustivo.watch serve. Ele reexecuta o mesmo comando automaticamente e continua atualizando a tela, então você não precisa ficar martelando o teclado.watch na frente do comando que você quer monitorar. Vamos começar com a forma mais simples.2. Uso Básico - Repetir um Comando Com watch
Conclusão: Basta escrever
watch comando. Por padrão, ele executa a cada 2 segundos e mostra o intervalo, o comando e o horário em um cabeçalho no topo.
ls -l.watch ls -l
Every 2.0s: ls -l host: Fri Jun 5 19:30:00 2026
ls -l!O cabeçalho no topo mostra o intervalo, o comando em execução, o hostname e o horário atual. Ele também confirma que o watch ainda está ativo e em execução.
3. Como Alterar o Intervalo (opção -n)
Conclusão: Use
-n segundos(ou--interval) para definir o intervalo. Por exemplo,watch -n 5 comandoexecuta a cada 5 segundos. O mínimo é 0.1 segundos.
-n para especificar os segundos. Para cada 5 segundos:watch -n 5 ls -l
-n 0.5 executa a cada meio segundo, até um mínimo de 0.1 segundos. Mas um intervalo muito curto executa o comando com muita frequência e usa mais CPU, então use apenas a velocidade que você realmente precisa.watch -n 0.5 ls -l
Um intervalo curto como -n 1 executa o comando com muito mais frequência. Executar um comando pesado (como resumir um diretórioUm local que organiza arquivos. É a mesma ideia da "pasta" do Windows ou macOS. enorme) em um intervalo curto pode causar alta carga, então tenha cuidado.
4. Como Destacar o Que Mudou (opção -d)
Conclusão:
-d(--differences) destaca o que mudou desde a execução anterior.-d=permanentmantém as alterações acumuladas destacadas desde a primeira iteração.
-d ajuda. Ele destaca as partes que diferem da atualização anterior.watch -d ls -l
-d=permanent. Ele mantém destacado qualquer ponto que já mudou, o que é útil quando você quer saber depois "o que mudou em algum momento enquanto eu não estava olhando."watch -d=permanent ls -l
5. A Armadilha das Aspas Com Pipes e Redirecionamento
Conclusão: Para incluir
|ou>, envolva o comando inteiro entre aspas. Sem aspas, o shellUm programa interativo que interpreta os comandos digitados e os executa. os interpreta primeiro e redireciona a saída do próprio watch.
watch ls | wc -l, mas se comportou de forma estranha.watch ls para wc -l." Para passar o ls | wc -l inteiro para o watch, escreva assim:watch 'ls | wc -l'
ls | wc -l ir para o watch como uma peça única.> e curingas como *, qualquer coisa que o shell trate de forma especial. Na dúvida, envolva o comando inteiro que você passa para o watch entre aspas simples.Regra geral: se você usa um pipe ou símbolo especial, escreva watch 'comando inteiro'. Esquecer as aspas é o erro mais comum com o watch.
6. Ocultar o Cabeçalho, Manter Cores, Parar na Mudança
Conclusão:
-tremove o cabeçalho,-creproduz a saída colorida e-gsai no momento em que a saída muda.
-t (--no-title). Use quando quiser ver apenas a saída, de forma limpa.watch -t ls -l
ls --color, as cores desaparecem.-c (--color) e o watch renderizará as cores ANSI que o comando produz.watch -c ls --color=always
-g (--chgexit). Ele sai do watch no momento em que a saída difere da execução anterior, perfeito para "me avise quando algo mudar."watch -g ls -l
Opções comuns em um relance
| Opção | Significado |
|---|---|
-n SEC |
Definir o intervalo (padrão 2s, mínimo 0.1s) |
-d |
Destacar alterações desde a última execução |
-d=permanent |
Manter alterações acumuladas destacadas |
-t |
Remover o cabeçalho do topo |
-c |
Reproduzir as cores ANSI do comando |
-g |
Sair quando a saída mudar |
-x |
Executar diretamente sem sh -c (cuidado com argumentos) |
7. Como Sair do watch
Conclusão: watch continua executando até você pará-lo. Pressione
Ctrl + Cpara encerrar a sessão e voltar ao promptUm símbolo (como $ ou #) exibido quando o shell está esperando sua entrada. normal.
Ctrl + C (segure Control e pressione C). Isso encerra o watch e retorna você ao seu prompt habitual.Ctrl + C e pronto.8. Casos de Uso Comuns
Conclusão: watch brilha sempre que você quer observar um número que muda ao longo do tempo: uso de disco, processos, contagens de log, conexões de rede.
# Monitorar uso de disco conforme muda watch df -h # Monitorar a contagem de um processo especifico (aspas no pipe) watch 'ps aux | grep nginx' # Observar a contagem de linhas de um log crescer watch 'wc -l /var/log/syslog' # Monitorar contagem de conexoes de rede a cada 5 segundos watch -n 5 'ss -tan | wc -l'
tail -f se encaixa melhor. watch "re-fotografa a tela inteira periodicamente," enquanto tail -f "transmite novas linhas conforme aparecem." Escolha o certo para a tarefa.