Às vezes, você precisa executar repetidamente um comando ou programa para monitorar vários aspectos do seu sistema, como processos em andamento, uso de espaço em disco ou logins de usuários. O comando watch do Linux permite automatizar essas tarefas sem ter que executá-las manualmente repetidas vezes.
Usando este comando, você pode monitorar as atividades do sistema em tempo real, como logins de usuários, status da rede, uso de memória e CPU, espaço em disco, etc. Vamos ver como usar o comando watch no Linux.
últimas postagens
Qual é o comando Watch?
O comando watch Linux executa um comando ou programa especificado repetidamente, em intervalos regulares, e exibe sua saída no terminal. Isso permite observar as alterações na saída em tempo real. Ele atualiza a saída a cada intervalo, substituindo a saída anterior do comando. Por padrão, o comando se repete a cada dois segundos e continua até que você o interrompa manualmente usando Ctrl + C.
Assistir à sintaxe do comando
A sintaxe do comando watch é:
watch options <command>
Existem várias opções de linha de comando disponíveis para uso com o comando watch. Se você executar o comando watch sem nenhuma opção, ele executará o comando especificado a cada dois segundos. Por exemplo, o seguinte mostrará a saída do comando ls:
watch ls -l ~/
A saída mostrará as alterações na listagem de diretórios se um arquivo for criado, excluído ou alterado de tamanho, enquanto atualiza a saída a cada dois segundos.
Execute um comando a cada X segundos usando watch
Você pode alterar o intervalo de atualização do comando watch. Isso significa que você pode dizer ao comando watch para esperar x segundos antes de repetir o comando. Para alterar o intervalo de atualização, use a opção -n seguida do intervalo de tempo em segundos.
watch -n
Por exemplo, para executar um comando a cada 5 segundos, execute:
watch -n 5 <command>
Destacar alterações entre atualizações
O comando watch substitui sua saída em cada atualização. Usando a opção -d, você também pode destacar as alterações entre a saída anterior e a atualizada.
watch -d
Ocultar cabeçalho na saída do comando watch
Por padrão, o comando watch exibe um cabeçalho na parte superior de cada saída que contém o intervalo de atualização, o nome do comando e a data e hora atuais do sistema. Você pode retirar o cabeçalho da saída usando a opção -t:
watch -t <command>
Tocar bips em caso de erro
Quando um processo Linux termina a execução, ele retorna um código de saída. Por convenção, o valor é 0 em caso de sucesso e diferente de zero para representar um erro. A opção -b do comando watch emite um sinal sonoro se o comando retornar uma saída diferente de zero.
Digamos que você queira monitorar sshd.service e ser notificado quando o serviço for interrompido; você usaria:
watch -b sudo systemctl status sshd.service
Este comando emitirá bipes quando o serviço for interrompido. O bipe irá parar quando o serviço for retomado. Para testar isso, abra outra janela do terminal e interrompa o serviço. Isso emitirá bipes constantes até você reiniciar o serviço. Entretanto, para usar esse recurso, você deve ter o pacote beep instalado em seu sistema.
Saia do comando watch na mudança de saída
Você também pode instruir o comando watch a parar de executar e sair quando a saída do comando for alterada. Você pode fazer isso usando a opção -g. Esta opção é muito útil em cenários em que você está aguardando determinadas alterações na saída.
Assim que a saída mudar, o comando watch irá parar. Você pode combinar esse uso com o comando echo para exibir uma mensagem na tela.
Por exemplo, considere um cenário em que você está aguardando a chegada de um arquivo em seu diretório. O comando a seguir monitorará o diretório do arquivo especificado. Assim que chegar, o comando watch irá parar de funcionar e o arquivo de mensagem que chegou será exibido no terminal.
watch -g "ls -l | grep filename" && echo "file arrived"
Outro exemplo útil é uma notificação quando um usuário específico faz login no seu sistema:
watch -g "who | grep username" && echo "username logged in"
Este comando monitorará a saída do comando who que lista os usuários que estão logados. Assim que o usuário fizer login, o comando watch irá parar e exibir uma mensagem no terminal.
Da mesma forma, você pode instruir o comando watch para interromper um serviço quando algumas alterações forem feitas em um arquivo. Lembre-se de que, ao usar uma cadeia de comandos canalizada, você precisará colocar o comando inteiro entre aspas.
Observe as atividades em seu sistema Linux
Se você estiver fazendo o mesmo processo repetidamente, considere usar o comando watch para automatizá-lo. Isso evita que você digite os comandos com frequência para ver o que mudou.
Você também pode usar o comando watch com outros comandos do Linux para monitorar recursos e atividades do sistema e rastrear alterações em arquivos ou diretórios.