3

У меня есть программа на Python, я хочу запускать ее каждый день с другой переменной (на сервере 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 запускается, но в htop нет python, и вывод программы пуст. Я изменил python на /usr /bin /python, потому что, когда я искал, я нашел ответ, который можно исправить. Также перед запуском этого кода Python у меня есть еще один маленький, который просто обновляет старые файлы, эта программа работает и работает очень. Когда я запускаю эту оболочку из терминала, вводя sh tester.sh, она работает, проблема только при запуске из cron.

Также это работало на сервере Ubuntu. Что случилось? Могут ли скрипты cron и shell работать в CentOS по-разному?

Кроме того, мой синтаксис 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

2 ответа2

1

попробуйте следующее решение, пожалуйста:

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
0

Ничто не помогло сбежать с пути. Все программы перенесены в /usr /local /bin и добавлены пути для программ bash и python. Теперь я могу запустить их, просто введя cron-work.sh в оболочку. А также в crontab пишется название программы без пути. Все отлично работает

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .