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.
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>
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.