Script de shell executando do cron não executando python

3

Eu tenho o programa python, eu quero executá-lo todos os dias com diferentes variáveis (no servidor CentOS):

#!/bin/sh
/usr/bin/python /root/testing/test.py --variables /root/testing/daily/test1.txt
while [ $? != 0 ]
do
    sleep 60
    /usr/bin/python /root/testing/test.py --variables /root/testing/daily/test1.txt
done

sleep 60 é executado, mas não há python no htop e a saída do programa está vazia. Eu mudei python para / usr / bin / python porque quando eu procurei encontrei resposta que pode corrigir. Também antes de executar este código python eu tenho outro pequeno, que apenas atualiza arquivos antigos, esse programa é executado e funciona muito. Quando eu estou executando este programa shell do terminal que entra sh tester.sh ele funciona, o problema é apenas ao executar a partir do cron.

Também funcionou no servidor Ubuntu. O que está errado? O cron e o shell script podem ser diferentes no CentOS?

Além disso, minha sintaxe de crontab:

22 23 * * * sh /root/testing/cron-work.sh >> /root/cron1.log
23 23 * * * sh /root/testing/cron-work2.sh >> /root/cron2.log
24 23 * * * sh /root/testing/cron-work3.sh >> /root/cron3.log
14 23 * * * sh /root/testing/cron-work4.sh >> /root/cron4.log
    
por Emin Mastizada 15.01.2014 / 01:20

2 respostas

0

Nada ajudou a fugir do caminho. Movido todos os programas para / usr / local / bin e adicionado caminho para bash e python para programas. Agora eu posso executá-los apenas inserindo cron-work.sh no shell. E também no nome do programa de escrita crontab sem caminho. Tudo funciona bem.

    
por 10.02.2014 / 12:59
1

tente a seguinte solução, por favor:

chmod +x test.py
chmod +x /root/testing/cron-work.sh
chmod +x /root/testing/cron-work2.sh
chmod +x /root/testing/cron-work3.sh
chmod +x /root/testing/cron-work4.sh
echo "22 23 * * * sh /root/testing/cron-work.sh"  >> /root/cron1.log 
echo "23 23 * * * sh /root/testing/cron-work2.sh" >> /root/cron2.log
echo "24 23 * * * sh /root/testing/cron-work3.sh" >> /root/cron3.log
echo "14 23 * * * sh /root/testing/cron-work4.sh" >> /root/cron4.log

chmod +x root/cron1.log
chmod +x root/cron2.log 
chmod +x root/cron3.log 
chmod +x root/cron4.log 

/etc/init.d/crond start  #redhat based servers like centos
/etc/init.d/cron  start  #debian based servers like ubuntu

crontab cron1.log
crontab cron2.log
crontab cron3.log
crontab cron4.log
    
por 10.02.2014 / 07:33