Como usar o comando watch no Linux

Como usar o comando watch no Linux

O comando watch do Linux executa comandos definidos pelo usuário em intervalos regulares e exibe a saída no terminal. Ele é importante para acompanhar processos e recursos do sistema sem precisar executar os comandos novamente.

Seja para acompanhar o uso do disco, monitorar interfaces de rede ou observar alterações em arquivos e diretórios, o watch facilita essas tarefas.

Neste guia, você vai aprender a usar o comando watch, desde a sintaxe básica e as opções até exemplos práticos. No final, você vai saber como monitorar com eficiência diversas atividades do sistema pela linha de comando.

Pré-requisitos

Para usar o comando watch, você precisa acessar seu servidor virtual privado (VPS) Linux ou seu computador com uma conta que tenha privilégios sudo. Se não tiver essa permissão, conceda acesso ao sudo editando o arquivo sudoers como root.

Se estiver usando um sistema remoto, abra a interface de linha de comando (CLI) pelo Terminal ou por um cliente SSH, como o PuTTY. Em computadores, você pode abrir o Terminal pressionando Ctrl + Alt + T.

Como alternativa, quem usa um VPS da Hostinger pode acessar a CLI do servidor remoto pelo navegador com o recurso Terminal do navegador.

Sintaxe do comando watch no Linux

O comando watch tem uma estrutura simples. Confira a sintaxe básica:

watch [options] command
  • watch. É o comando principal, responsável por executar o comando especificado repetidamente em intervalos regulares.
  • [options]. São opções que modificam o comportamento do watch, como ajustar o intervalo ou destacar alterações.
  • command. É o comando do Linux que você quer monitorar. Pode ser qualquer comando que exiba dados no terminal, como informações sobre uso do disco, estatísticas de rede ou recursos do sistema.

Depois de executar o watch, ele repete o comando especificado e atualiza a saída de acordo com o intervalo definido. Para interromper o processo, pressione Ctrl + C.

Opções do comando watch

O comando watch oferece diversas opções para ampliar suas funcionalidades. Confira algumas das mais comuns:

  • -b. Emite um bipe quando o comando é encerrado com um status diferente de zero, indicando um erro.
  • -c. Ativa as cores ANSI na saída.
  • -d. Destaca as diferenças entre atualizações consecutivas, facilitando a identificação das alterações.
  • -e. Congela a tela quando o comando retorna um status de saída diferente de zero e encerra o watch quando você pressiona uma tecla.
  • -g. Encerra o watch quando a saída do comando muda.
  • -h. Exibe as informações de ajuda do watch.
  • -n [número]. Define o intervalo entre as atualizações em segundos. O valor padrão é 2.
  • -p. Faz o watch tentar executar o comando em intervalos precisos, levando em conta o tempo necessário para a execução.
  • -t. Oculta o cabeçalho que mostra o comando, o intervalo de atualização e a hora atual.
  • -w. Ativa ou desativa a quebra de linha para truncar saídas longas.
  • -x. Passa o comando diretamente para exec, em vez de executá-lo por meio de sh -c.
  • –precise. Executa o comando em intervalos precisos sempre que possível.

Exemplos do comando watch no Linux

Agora que você conhece a sintaxe e as opções, confira alguns exemplos práticos de como usar o comando watch.

Monitore os recursos do sistema

Um dos usos mais comuns do comando watch é monitorar os recursos do sistema em intervalos regulares. Assim, você pode acompanhar o uso da CPU, o consumo de memória e outras métricas importantes para verificar se o sistema Linux está funcionando corretamente.

Para monitorar o uso da CPU e da memória, combine o watch com o comando top, como no exemplo abaixo:

watch -n 5 top -b -n 1

Esse comando atualiza as informações sobre o uso dos recursos do sistema a cada cinco segundos. A saída esperada é semelhante a esta:

top - 15:32:18 up 1:25,  1 user,  load average: 0.16, 0.10, 0.09
Tasks: 203 total,   1 running, 202 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.7 us,  0.2 sy,  0.0 ni, 98.0 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
MiB Mem :  7977.6 total,  5728.2 free,   766.3 used,  1483.1 buff/cache
MiB Swap:  2048.0 total,  2048.0 free,     0.0 used.  6744.5 avail Mem

Acompanhe alterações em diretórios

Você também pode usar o watch para monitorar alterações em um diretório ao longo do tempo. Isso é especialmente útil para acompanhar arquivos modificados, adicionados ou excluídos. Para isso, combine o watch com o comando ls, por exemplo:

watch -n 10 ls -lh /caminho/para/diretorio

O watch atualiza a listagem do diretório a cada 10 segundos para que você possa acompanhar as alterações ao longo do tempo. A saída do comando é semelhante a esta:

total 20K
-rw-r--r-- 1 user user 1.2K Sep 20 14:32 file1.txt
-rw-r--r-- 1 user user 600 Sep 20 14:34 file2.txt
drwxr-xr-x 2 user user 4.0K Sep 20 14:35 folder1

Monitore o uso do disco

Monitorar o uso do disco no Linux ajuda a detectar problemas e arquivos não utilizados que podem ocupar espaço de armazenamento. Ao combinar o comando watch com df -h, você pode acompanhar periodicamente quanto espaço em disco está sendo usado.

Para monitorar o uso do disco, execute:

watch -n 15 df -h

A saída será semelhante a esta:

Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 20G 28G 42% /
/dev/sdb1 100G 60G 35G 64% /mnt/data
tmpfs 1.9G 1.0M 1.9G 1% /dev/shm

Verifique as interfaces de rede

Monitorar as interfaces de rede ajuda a acompanhar o uso da largura de banda e identificar possíveis problemas de rede. Você pode combinar o watch com ifconfig ou ip -s link para acompanhar mudanças na atividade da rede e detectar anomalias.

Veja um exemplo de como verificar o status das interfaces de rede usando watch e ip -s link:

watch -n 5 ip -s link

Depois de executar o comando, você verá uma saída como esta a cada cinco segundos:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    RX: bytes  packets  errors  dropped overrun mcast   
         123456  789    0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
         654321  432    0       0       0       0       
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    RX: bytes  packets  errors  dropped overrun mcast   
         987654  4321   0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
         123456  5678   0       0       0       0       

Acompanhe arquivos de log

Usar o watch com o comando tail permite acompanhar as mudanças nos arquivos de log conforme novas entradas são adicionadas. Isso é útil para solucionar problemas do sistema ou acompanhar eventos específicos sem precisar reabrir ou atualizar o arquivo manualmente.

Para acompanhar as atualizações de um arquivo de log, execute:

watch -n 20 tail -n 20 /var/log/syslog

Esse comando exibe as últimas 20 linhas do arquivo de log do sistema a cada 20 segundos:

Sep 20 12:35:01 server CRON[12345]: (root) CMD (run-parts /etc/cron.hourly)
Sep 20 12:40:01 server CRON[12346]: (root) CMD (run-parts /etc/cron.daily)
Sep 20 12:45:01 server systemd[1]: Starting Cleanup of Temporary Directories...
Sep 20 12:50:01 server systemd[1]: Started Cleanup of Temporary Directories.

Combine com grep para filtrar a saída

O comando grep permite filtrar a saída de outro comando usando palavras-chave. Com ele, o watch exibe apenas os dados relevantes, reduzindo a quantidade de informações na saída e facilitando a análise.

Ao usar o grep, a sintaxe do comando watch muda um pouco. Como vamos usar um pipe (|) para encaminhar a saída de um comando para outro, precisamos agrupar os comandos entre aspas. Veja o exemplo:

watch -n 5 "ps aux | grep 'root'"

Esse comando executa ps aux repetidamente e encaminha a saída para o grep, que exibe apenas as entradas que contêm a palavra root. A saída pode ser semelhante a esta:

root 1 0.0 0.3 169344 13812 ? Ss Sep22 0:18 /sbin/init
root 2 0.0 0.0 0 0 ? S Sep22 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I&lt; Sep22 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I&lt; Sep22 0:00 [rcu_par_gp]
root 5 0.0 0.0 0 0 ? I&lt; Sep22  0:00 [slub_flushwq]

A cada execução, o grep filtra a saída do comando e exibe apenas as entradas que contêm a palavra root.

Use o watch com scripts personalizados

Além de comandos, o watch permite executar scripts repetidamente. Os scripts são úteis para tarefas personalizadas que envolvem vários utilitários e uma lógica mais complexa. Além disso, eles são mais modulares e fáceis de reutilizar do que comandos.

Para criar um script Bash, execute o comando abaixo. Substitua myscript pelo nome que quiser:

nano myscript.sh

Escreva a lógica do script. Por exemplo, vamos criar um script simples que exibe a data e a hora atuais do sistema, além do tempo de atividade:

#!/bin/bash

echo "Data e hora atuais: $(date)"

echo "Tempo de atividade: $(uptime)"

Pressione Ctrl + X → Y → Enter para salvar o arquivo. Depois, torne o script executável para que o comando watch possa executá-lo:

chmod +x myscript.sh

Execute o script com o comando watch. Neste exemplo, vamos definir um intervalo de cinco segundos:

watch -n 5 ./myscript.sh

A saída será semelhante a esta, com a data e o tempo de atividade sendo atualizados a cada cinco segundos:

Data e hora atuais: Tue Sep 24 06:00:32 AM UTC 2025

Tempo de atividade: 06:00:32 up 1 day, 17:50, 1 user, load average: 0.17, 0.09, 0.03

Conclusão

O comando watch permite executar outro comando repetidamente em um intervalo específico. Ele facilita o monitoramento de dados que mudam ao longo do tempo, como processos, consumo de recursos e logs, porque você não precisa executar o comando novamente para obter uma saída atualizada.

Para usar esse utilitário, digite watch seguido do comando que você quer repetir. Também é possível adicionar opções para ajustar o comportamento de acordo com suas necessidades de monitoramento. Por exemplo, use -n para alterar o intervalo de execução e -g para interromper automaticamente o comando quando a saída mudar.

Você pode usar o watch com vários comandos, incluindo top, ls e df. Como esse utilitário é versátil, experimente diferentes combinações para se familiarizar com a ferramenta e encontrar formas de usá-la de acordo com suas necessidades.

Para quem usa a Hospedagem VPS da Hostinger, recomendamos o Agente da Hostinger para escrever o comando watch rapidamente. Você também pode pedir ao Agente da Hostinger para mostrar o uso atual dos recursos do sistema do seu VPS e os arquivos de log mais recentes sempre que precisar, sem inserir comandos manualmente.

Perguntas frequentes sobre o comando watch no Linux

Para que serve o comando watch no Linux?

O watch permite executar automaticamente outro comando em intervalos regulares. Ele é útil para monitorar a saída dos comandos sem precisar executá-los novamente. Por exemplo, você pode acompanhar novos logs, processos e o uso dos recursos do sistema.

O comando watch pode monitorar continuamente as alterações em arquivos?

Sim. Você pode verificar alterações em um arquivo usando o watch para executar repetidamente o comando tail. Ele exibe as últimas linhas de um arquivo, permitindo verificar se há novos dados.

É possível usar o comando watch para monitorar vários comandos ao mesmo tempo?

Sim. Você pode usar o watch com vários comandos colocando-os entre aspas e separando-os por operadores. Use o operador AND (&&) para executar cada comando somente se o anterior tiver sido concluído com sucesso. Se quiser executar os comandos independentemente do resultado do anterior, use o ponto e vírgula (;) como separador.

Todo o conteúdo dos tutoriais deste site segue os rigorosos padrões editoriais e valores da Hostinger.

Faradilla, mais conhecida como Ninda, tem 10 anos de experiência como linguista e 5 anos como Especialista em Marketing de Conteúdo na Hostinger. Ela gosta de acompanhar as tendências em tecnologia e de ajudar as pessoas a resolver seus problemas. No tempo livre, Ninda gosta de estudar idiomas e ciências da vida, além de assistir a vídeos de animais. Conecte-se com ela no LinkedIn.

O que dizem nossos clientes

Comentários

0 responses

Write a response

Por gentileza, preencha os campos solicitados.Marque o campo de aceitação da privacidade.Preencha os campos necessários e marque a opção de aceitar termos de privacidade.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.