У меня есть один сервер, который запускает задания cron правильно. Это информация на этом сервере:Cron не работает 12.0.4, но делает 12.0.5
Ubuntu 12.04.5 LTS (GNU/Linux 3.13.0-32-родовое x86_64)
crontab -l
* * * * * (sleep 15 ; sudo /var/crons/NextQueueItemParallel.sh) * * * * * (sleep 45 ; sudo /var/crons/NextQueueItemParallel.sh)
Сервер, который не запускающего в crons:
Ubuntu 12.04.4 LTS (GNU/Linux 3.16.5-x86_64-linode46 x86_64)
crontab -l
* * * * * (sleep 30 ; sudo /var/crons/ParseLogs.sh)
Я запустить скрипт вручную, и это работает. Я проверил путь правильно, и поставить этот отладочный код, чтобы увидеть, был ли он вызывался:
echo 1 >> /var/crons/test php /var/www/crons/ParseLogFiles.php
Я запустить его вручную, и получить 1, приложенным к концу испытания, но не отображается на сам. Я установил правильные услуги cron и anacron и попробовал решения, изложенные здесь:
php cron job not running | http://growingventuresolutions.com/blog/ubuntu-cron-isn-t-running-some-things-check.html | Cron Job Doesn't Run
EDIT 1:
Я обновил кронтаб на машине, которая в настоящее время не работает, выдавая sudo crontab -e
и следующая строка теперь присутствует (я проверил путем закрытия и повторного открытия):
* * * * * (sleep 30 ; /var/crons/ParseLogs.sh)
(с последующим новой строки или два)
Этот файл состоит из следующих:
echo 1 >> /var/crons/test php /var/www/crons/ParseLogFiles.php
I tail/var/crons/test (tail -f /var/crons/test
), но ничего не вижу и скрипт не запускается. Когда я запускаю оба этих файла вручную (путем копирования строки), он фактически запускается.
EDIT 2:
Я не имел права на исполнение, поэтому он работал, когда я запустил его вручную, но не на хрон. Я выпустил следующую команду chmod +x /var/crons/ParseLogs.sh
, и она сразу же начала работать. Если вы просматриваете это, и все остальное работает, проверьте это! Спасибо всем, кто помог!
Это не проблема программирования. [unix.se] может быть лучше спросить. Проверьте их справочный центр. –