Como fazer o cron executar um script python como root?

3

Como posso obter cron para executar um script python como root? Aqui está o meu arquivo crontab:

0 * * * * ./twitter/twitter.py

Estou fazendo algo errado?

    
por Paul 27.10.2010 / 21:44

1 resposta

11

Se esse é o crontab do root (editado com sudo crontab -u root -e ou su -c 'crontab -u root -e' ou similar), então ./twitter/twitter.py será executado a cada hora. Se este for o crontab do sistema ( /etc/crontab ), um sexto campo será necessário após os asteriscos: 0 * * * * root … . Eu recomendo usar o crontab do usuário root e deixar o crontab do sistema no sistema.

./twitter/twitter.py inicia a partir do diretório atual. Cron não pode adivinhar o que você quer que o diretório atual seja: você nunca disse isso. Altere isso para usar o caminho absoluto para o script, por exemplo /home/paul/scripts/twitter/twitter.py .

Você precisará garantir que twitter.py comece com #!/usr/bin/env python (suponho que seja um script Python) e que python esteja no padrão PATH do cron (isso dependerá da sua marca de unix; você pode ter certeza de que /usr/bin está no padrão PATH , mas se o seu python estiver em outro lugar, como /usr/local/bin , talvez seja necessário adicionar uma linha como PATH=/usr/local/bin:/bin:/usr/bin na parte superior do crontab) .

Verifique também se o script é executável ( chmod +x …/twitter.py ).

    
por 27.10.2010 / 22:42

Tags