Sim, isso deve funcionar bem, presumindo que quando você diz "corre bem na linha de comando" você está literalmente colando o mesmo comando da entrada crontab. Coisas a verificar:
- O daemon do cron está realmente em execução? (Executar
pidof cron
) - Se estiver em execução, tente reiniciá-lo. (Depende do seu sabor do Unix, mas algo como
service cron restart
ou/etc/init.d/cron restart
) - Se o seu script ainda não for executado, verifique tudo em
/var/log
para a saída apropriada - o arquivo específico depende da configuração do syslog, mas/var/log/messages
e/var/log/syslog
são boas opções se/var/log/cron
não existir .
Observação: você precisará de root
para fazer a maioria dessas coisas. Se não tiver acesso, precisará falar com a pessoa que administra a máquina.
Além disso, quando você diz que abre um arquivo em /tmp
, essa é provavelmente a coisa mais confiável que você pode fazer para garantir sua execução. Logo no início do seu script (antes das importações ou qualquer outra coisa), adicione isto:
with open("/tmp/testfile", "a") as fd:
fd.write("I am running\n")
Você também pode verificar se o seu crontab está sendo instalado corretamente - ele deve ser colocado em algo como /var/spool/cron/crontabs
(no Ubuntu Linux, pode ser diferente em diferentes sabores do Unix). Você deve ver um arquivo lá com seu nome de usuário, que deve conter sua entrada.
Por fim, se você ficar realmente desesperado, poderá strace
do seu processo do cron para ver o que está fazendo:
sudo strace -f -p 'pidof cron'
Você não precisa se preocupar muito com os detalhes, mas deve estar fazendo algo a cada minuto. Se não é, então algo está errado.