Bloco condicional no crontab

Bloco condicional no crontab

É possível colocar uma instrução "if" no crontab de um usuário ou existe outra maneira sensata de organizar muitos cron jobs condicionais? Do ponto de vista do usuário final, seria mais fácil se eles pudessem usar o crontab normal e apenas colocar suas entradas entre duas linhas, se possível.

Idealmente, algo como:

if [ something ]; then
* * * * * /usr/bin/php /path/to/file.php
0 0 * * * /usr/bin/php /path/to/file2.php
*/5 * * * * /root/script.sh
fi

Responder1

Não é possível fazer exatamente isso.

O que você pode fazer, no entanto, é criar um script como /usr/local/bin/check_live- que sai com o código de status 0 se o servidor estiver ativo no momento e diferente de zero se não estiver.

Você pode então ter linhas crontab como:

* * * * * /usr/local/bin/check_live && /usr/bin/php /path/to/file.php
0 0 * * * /usr/local/bin/check_live && /usr/bin/php /path/to/file2.php
*/5 * * * * /usr/local/bin/check_live && /root/script.sh

Responder2

Eu não recomendaria colocá-lo no arquivo crontab. Em vez disso, crie um script onde você definirá suas condições e coloque-o no arquivo crontab. Você terá uma configuração muito mais limpa e organizada.

informação relacionada