Executando um script bash em momentos aleatórios usando o cron job

0

Eu preciso monitorar a intrusão em um servidor em intervalos (relativamente) aleatórios. Para isso, configurei um cron job para executar a cada hora.

Eu escrevi três scripts:

  1. script de wrapper que chama um script random_sleep_interval
  2. O próprio script random_sleep_interval
  3. O script de trabalho que faz o trabalho de monitoramento (e registra no arquivo)

O random_sleep_interval funciona sozinho quando eu o digito no CLI assim:

random_sleep_interval 100

Produz algo assim:

Sleeping for 95 seconds ...

Onde 95 é um intervalo de tempo aleatório calculado / selecionado pelo script random_sleep_interval. Toda vez que o script é executado, ele dorme por um número aleatório de segundos (entre 0 e o primeiro argumento passado para o script)

O script wrapper é invocado com sucesso pelo cron. O script wrapper, por sua vez, chama o random_sleep_interval e o script worker. No entanto, quando eu verifico os logs criados pelo script worker, todos os arquivos de log são criados no MESMO TEMPO que a tarefa cron inicia - o que significa que, de alguma forma, a parte do sono não está funcionando.

Alguém pode me explicar por que, juntos, eles não funcionam, mas seprately funciona (como explicado acima)?

A única razão para este comportamento é se o script wrapper está gerando processos diferentes para cada script a ser executado - mas isso não faz sentido ...

Estou executando no Ubuntu 10.0.4 LTS

    
por Takashi 28.01.2011 / 11:13

0 respostas