@makar04

Почему cron запускается 2 раза?

Доброго времени суток!
Есть Cron задание wget -q -O - my-site.ru/index.php?route=common/task/doSome > /dev/null 2>&1
которое должно выполняться каждую ночь в 01:15. Судя по логам cron, оно запускается в 01:15:01 и выполняется 1 раз. Но задание дублирует данные и судя по моим логам задание запускается в 01:15:01 и следом в 01:15:02. Задание выполняет несколько запросов в БД и на всё уходит чуть меньше секунды.
В чем может быть проблема? Почему дублируются данные?

Ниже прикрепляю логи cron.

Mar 6 01:14:01 vm2002283119 CROND[8605]: (root) CMD (/usr/local/mgr5/sbin/cron-ispmgr sbin/mgrctl -m ispmgr periodic >/dev/null 2>&1)
Mar 6 01:14:01 vm2002283119 CROND[8606]: (root) CMD ( /opt/php71/bin/php -c /usr/local/mgr5/addon/revisium_antivirus/php.ini /usr/local/mgr5/addon/revisium_antivirus/services/queue.php >> /usr/local/mgr5/var/raisp_data/log/raisp_queue.log 2>&1)
Mar 6 01:15:01 vm2002283119 CROND[8630]: (root) CMD ( /opt/php71/bin/php -c /usr/local/mgr5/addon/revisium_antivirus/php.ini /usr/local/mgr5/addon/revisium_antivirus/services/email.php >> /usr/local/mgr5/var/raisp_data/log/email.log 2>&1)
Mar 6 01:15:01 vm2002283119 CROND[8635]: (root) CMD (/usr/local/mgr5/sbin/cron-ispmgr sbin/mgrctl -m ispmgr problems.autosolve >/dev/null 2>&1)
Mar 6 01:15:01 vm2002283119 CROND[8631]: (root) CMD (/usr/local/mgr5/sbin/cron-core sbin/mgrctl -m core sysinfostat >/dev/null 2>&1)
Mar 6 01:15:01 vm2002283119 CROND[8633]: (root) CMD (/usr/local/mgr5/sbin/cron-ispmgr sbin/mgrctl -m ispmgr periodic >/dev/null 2>&1)
Mar 6 01:15:01 vm2002283119 CROND[8632]: (root) CMD (/usr/local/mgr5/sbin/cron-core sbin/mgrctl -m core problems.autosolve >/dev/null 2>&1)
Mar 6 01:15:01 vm2002283119 CROND[8634]: (root) CMD (wget -q -O - my-site.ru/index.php?route=common/task/doSome > /dev/null 2>&1)
Mar 6 01:15:01 vm2002283119 CROND[8636]: (root) CMD ( /opt/php71/bin/php -c /usr/local/mgr5/addon/revisium_antivirus/php.ini /usr/local/mgr5/addon/revisium_antivirus/services/queue.php >> /usr/local/mgr5/var/raisp_data/log/raisp_queue.log 2>&1)
Mar 6 01:15:01 vm2002283119 CROND[8637]: (root) CMD (/usr/local/mgr5/sbin/cron-ispmgr addon/srvmon >/dev/null 2>&1)
Mar 6 01:16:01 vm2002283119 CROND[8672]: (root) CMD ( /opt/php71/bin/php -c /usr/local/mgr5/addon/revisium_antivirus/php.ini /usr/local/mgr5/addon/revisium_antivirus/services/queue.php >> /usr/local/mgr5/var/raisp_data/log/raisp_queue.log 2>&1)
Mar 6 01:16:01 vm2002283119 CROND[8673]: (root) CMD (/usr/local/mgr5/sbin/cron-ispmgr sbin/mgrctl -m ispmgr periodic >/dev/null 2>&1)
Mar 6 01:17:01 vm2002283119 CROND[8688]: (root) CMD (/usr/local/mgr5/sbin/cron-ispmgr sbin/mgrctl -m ispmgr periodic >/dev/null 2>&1)
  • Вопрос задан
  • 771 просмотр
Пригласить эксперта
Ответы на вопрос 2
@Aborigen1020
my-site.ru/index.php?route=common/task/doSome

ага, есть такое, в вашем логе 1 раз.
и судя по моим логам задание запускается в 01:15:01 и следом в 01:15:02.

По вашим логам - имеете ввиду по логам вашего приложения?

Боюсь, что проблема не в cron, его логи подтверждают, что задание он выполнил один раз в установленное время. Cron весьма надежный инструмент, и скорее всего, ошибку нужно искать в вашем скрипте. Давайте разбираться, покажите скрипт, который отрабатывает некорректно.
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Во-первых, зря вы запускаете такие задачи да из-под самого root-а.

Во-вторых, по логам cron-а задача с wget запускается один (1) раз.
Если она запускается дважды - значит где-то кто-то её ещё раз запускает.
Где-нибудь в каком-нибудь PHP-скрипте?

И третье, стоит заключить URL для wget в кавычки:
wget -q -O - "my-site.ru/index.php?route=common/task/doSome" > /dev/null 2>&1
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы