Linux / Shell Script - Repetindo um comando no terminal a cada X intervalos de tempo






Muitas vezes precisamos monitorar o funcionamento de aplicações que precisam pegar dados em web services, APIs, gerar arquivos de tempos em tempos, logs e etc.

O comportamento das aplicações podem variar muito conforme o tipo de dados que recebemos e processamos, principalmente quando não temos o controle completo do dado que chega.

Um bom meio para fazer isso é deixar sua aplicação rodando por algum tempo sozinha, coisa que seria muito chata de fazer manualmente.

O Shell do Linux nos permite fazer facilmente um timer para rodar nossa aplicação, por exemplo, a cada 20 minutos. No final do dia podemos ver os logs, arquivos gerados ou as atualizações em um banco de dados de testes para verificar se o comportamento foi o esperado.

O comando Shell é o que segue abaixo:

 while true; do <your_command>; sleep <interval_in_seconds>; done  


Vamos supor que queremos rodar uma aplicação NodeJs a cada 20 minutos. Para isso vamos na pasta em que se encontra nossa aplicação e digitamos o seguinte comando Shell:

 while true; do node index.js; sleep 1200; done  


( 1200s é o mesmo que 20minutos ) 😉

Para encerrar o processo basta dar um Ctrl+C

😁

Comentários

Postagens mais visitadas deste blog

MySQL - Completando quantidades fixas de caracteres com as funções LPAD() e RPAD()

MySQL - Clonando tabelas na linha de comando

PHP - Gerando arquivo em UTF-8 com fwrite() e utf8_encode()