Como posso executar continuamente um script bash verificando se um valor foi alterado?

1

Eu tenho um script PHP getAnalytics.php que, quando chamado, retorna um valor inteiro específico. Eu quero ser capaz de chamar getAnalytics.php em um script bash que é executado continuamente verificando o script PHP a cada 30 segundos para ver se o valor retornado foi alterado.

Como eu vou fazer isso? Ou você recomendaria um método diferente?

    
por Trey Copeland 14.12.2014 / 17:38

2 respostas

0

Se você pudesse relaxar suas exigências para um minuto entre as execuções, você pode fazer isso facilmente através de uma entrada cron. A vantagem desse processo é que um programa não fica simplesmente parado (e possivelmente morre) fazendo com que você perca alguns dados ou janelas. Também não serão necessários passos especiais para iniciá-lo entre as reinicializações.

    
por 14.12.2014 / 20:43
0

Se você não tiver uma indicação melhor (ver algum arquivo de log, por exemplo) para receber uma notificação de uma possível mudança, basta repetir o loop no bash:

res=
while [ 1 ] ; do
   old_result=$res
   res=$(/path/to/getAnalytics.php)
   echo "result: $res"
   if [ "$old_result" != "$res" ]; then
     echo "result has changed"
   fi
   sleep 30
done

Você precisará de Ctrl + C para sair. Se você deseja sair de um determinado valor (por exemplo, 42) impresso pelo conjunto de scripts res para algum valor fictício no início e testar para [ "$res" != "42" ]

    
por 14.12.2014 / 17:43

Tags