como posso fazer o cron executar um trabalho agora, para testar / depurar? sem mudar o horário!

93

Eu tenho um cron job que está agendado para ser executado todos os dias, além de alterar o agendamento, existe alguma outra maneira de executar um teste do comando agora mesmo para ver se ele funciona conforme o esperado?

    
por Ali 10.07.2012 / 12:38

3 respostas

23

Tanto quanto sei, não há como fazer isso diretamente, pois o cron tem um propósito especial - executar comandos de horários em um horário específico. Então, o melhor é criar manualmente uma entrada crontab ou escrever um script que remova e redefina o ambiente.

    
por 10.07.2012 / 13:14
39

Você pode forçar o crontab a executar com o seguinte comando:

run-parts /etc/cron.daily
    
por 24.11.2015 / 03:54
27

Você pode simular o ambiente de usuário do cron, conforme explicado em "Executando um cron job manualmente e imediatamente ". Isso permitirá que você teste o trabalho quando ele for executado como o usuário cron.

Trecho do link:

Passo 1 : eu coloco esta linha temporariamente no crontab do usuário:

* * * * *   /usr/bin/env > /home/username/tmp/cron-env

depois retirou-o assim que o arquivo foi escrito.

Etapa 2 : criei um pequeno script de run-as-cron contendo:

#!/bin/bash
/usr/bin/env -i $(cat /home/username/tmp/cron-env) "$@"

Então, como usuário em questão, consegui

run-as-cron /the/problematic/script --with arguments --and parameters
    
por 01.07.2015 / 14:36