Contents

Como executar um programa periodicamente usando o comando Watch no Linux

Por vezes, é necessário executar repetidamente um comando ou um programa para monitorizar vários aspectos do seu sistema, como processos em curso, utilização do espaço em disco ou inícios de sessão de utilizadores. O comando watch do Linux permite-lhe automatizar estas tarefas sem ter de as executar manualmente uma e outra vez.

A utilização deste comando permite a observação contínua de vários eventos do sistema, incluindo a atividade de início de sessão do utilizador, as condições da rede, a utilização do processador e da memória, a capacidade de armazenamento disponível, entre outros. Explore os passos necessários para utilizar o comando “watch” num sistema operativo Linux para obter capacidades de monitorização abrangentes.

O que é o comando Watch?

O comando “watch” no Linux permite a execução de um comando ou programa designado de forma recorrente, com a saída exibida no terminal. Isso permite monitorar quaisquer modificações na saída em tempo real, pois ela é atualizada continuamente, substituindo a saída anterior a cada iteração. Por predefinição, o comando é executado de dois em dois segundos, a menos que seja terminado premindo

Sintaxe do comando watch

A sintaxe do comando watch é:

 watch options <command> 

A utilização do comando “watch” oferece uma grande variedade de opções de configuração através de parâmetros da linha de comandos. Quando executado sem qualquer especificação, o comando “watch” executará a operação designada a cada dois segundos como ilustração, o ecrã subsequente demonstrará os resultados emitidos pelo comando “ls”:

 watch ls -l ~/ 

O ecrã de apresentação mostrará as modificações das listagens de directórios em caso de criação, remoção ou alteração das dimensões de um ficheiro, actualizando a visualização num intervalo de dois segundos.

/pt/images/watch-output-of-ls-command.jpg

Executar um comando a cada X segundos Usando watch

Você tem a flexibilidade de modificar o ciclo de atualização do comando watch . Isso equivale a especificar uma duração para que o comando watch permaneça inativo antes de reexecutar sua diretiva. Para ajustar o intervalo de atualização, utilize a opção -n acompanhada pelo período de tempo em segundos como parâmetro.

 watch -n

Para executar um comando repetidamente de cinco em cinco segundos, pode utilizar a seguinte abordagem:

 watch -n 5 <command> 

/pt/images/change-update-interval-of-watch-command.jpg

Destacar alterações entre actualizações

O comando watch em scripts de shell modifica o seu ecrã a cada execução.Ao utilizar a opção -d , também é possível acentuar as discrepâncias entre a saída atual e a anterior.

 watch -d 

Ocultar cabeçalho na saída do comando watch

O comportamento padrão do comando “watch” é exibir um cabeçalho em cada saída que inclui informações sobre o intervalo de atualização, o nome do comando e a data e hora atuais do sistema. Para omitir este cabeçalho da saída, pode utilizar a opção “-t”.

 watch -t <command> 

Tocar bipes em caso de erro

Após a conclusão de um processo Linux, ele normalmente retorna um status de saída que é frequentemente considerado como uma medida de sucesso ou falha. A prática convencional dita que um valor de zero significa uma execução bem-sucedida, enquanto qualquer outro valor serve como indicador de um erro. No contexto da opção -b do comando watch, este estado de saída é utilizado para desencadear a emissão de um sinal sonoro sob a forma de um bip quando é devolvido um valor diferente de zero, alertando assim os utilizadores para potenciais problemas nos seus comandos de script.

Uma abordagem possível para monitorizar o estado do serviço sshd.usando o systemd e receber notificações no caso de uma interrupção do serviço envolve a utilização do seguinte comando:

 watch -b sudo systemctl status sshd.service 

Para implementar um mecanismo de notificação usando alertas audíveis na forma de sons de bipes através do pacote “beep” para serviços que pararam de operar, pode-se utilizar o seguinte procedimento. Ao executar este comando, uma série de bips contínuos sairá dos altifalantes sempre que o serviço especificado deixar de funcionar. Por outro lado, quando o serviço for restabelecido, o sinal sonoro será interrompido. É importante notar que esta funcionalidade está dependente da presença do pacote “beep” acima mencionado no sistema do utilizador.

Sair do comando watch na alteração da saída

A flag -g permite parar a execução de um comando watch e terminar a sua operação ao detetar qualquer alteração na saída resultante, tornando-a particularmente útil durante situações em que a monitorização das modificações da saída é crucial.

Se a saída for alterada, a execução do comando watch é interrompida. Esta operação pode ser eficazmente combinada com a utilização do comando echo para a apresentação de conteúdos visuais na superfície do ecrã.

Suponha que está à espera que um determinado ficheiro apareça num dos seus directórios. Nesse caso, a execução do comando fornecido permitirá a monitorização contínua do referido diretório para detetar a presença do ficheiro específico.Uma vez detectado, a execução do comando watch deve cessar, e uma notificação indicando a chegada do ficheiro deve ser exibida na interface do terminal.

 watch -g "ls -l | grep filename" && echo "file arrived" 

Outro exemplo ilustrativo envolve a receção de um alerta sobre a ocorrência de um determinado indivíduo que acede à sua rede:

 watch -g "who | grep username" && echo "username logged in" 

O presente comando deve supervisionar a saída gerada pelo comando “who”, que enumera os indivíduos atualmente ligados ao sistema. Quando um utilizador se liga, a funcionalidade do comando “watch” cessa e emite uma notificação na interface do terminal.

De forma semelhante, é possível dar instruções ao comando “watch” para interromper a execução de um determinado serviço sempre que sejam feitas modificações num ficheiro específico. No entanto, ao empregar um pipeline de comandos interligados, é essencial englobar a instrução completa entre aspas.

Observar as actividades no seu sistema Linux

Utilizar o comando “watch” pode ser uma solução prática se executar frequentemente tarefas idênticas de forma sequencial. Ao empregar este comando, pode eliminar a necessidade de introduzir continuamente comandos para discernir quaisquer modificações que tenham sido feitas.

Pode-se utilizar o comando “watch” juntamente com vários comandos Linux para supervisionar os recursos e tarefas do sistema, e monitorizar alterações em ficheiros ou directórios.