Я на Linux (Ubuntu) 16.04. У меня есть набор скриптов в /etc/cron.daily который обрабатывает anacron. Раньше они бегали нормально каждый день, но я заметил, что они не бегали в последнее время. Я не уверен, если это из-за обновления или чего-то еще. Это сводит меня с ума, потому что я перепробовал все, что мог придумать, не добившись результатов. Вот что я проверил до сих пор:

1) grep "Nov 22" /var/log/syslog | grep "cron.daily" -B 5 -A 5:

Nov 22 06:24:47 ubuntu16 dbus[816]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Nov 22 06:24:47 ubuntu16 systemd[1]: Started Network Manager Script Dispatcher Service.
Nov 22 06:24:47 ubuntu16 nm-dispatcher: req:1 'dhcp4-change' [enp1s0]: new request (1 scripts)
Nov 22 06:24:47 ubuntu16 nm-dispatcher: req:1 'dhcp4-change' [enp1s0]: start running ordered scripts...
Nov 22 06:25:01 ubuntu16 CRON[6455]: (root) CMD (cupsenable HP-HP-OfficeJet-Pro-8710)
**Nov 22 06:25:01 ubuntu16 CRON[6456]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ))**
Nov 22 06:30:01 ubuntu16 CRON[6485]: (root) CMD (cupsenable HP-HP-OfficeJet-Pro-8710)
Nov 22 06:35:01 ubuntu16 CRON[6513]: (root) CMD (cupsenable HP-HP-OfficeJet-Pro-8710)
Nov 22 06:39:01 ubuntu16 CRON[6536]: (root) CMD (  [ -x /usr/lib/php/sessionclean ] && /usr/lib/php/sessionclean)
Nov 22 06:40:01 ubuntu16 CRON[6583]: (root) CMD (cupsenable HP-HP-OfficeJet-Pro-8710)
Nov 22 06:45:01 ubuntu16 CRON[6612]: (root) CMD (cupsenable HP-HP-OfficeJet-Pro-8710)

Таким образом, кажется, что сценарии cron.daily запущены или, по крайней мере, anacron пытается запустить его, и в системном журнале нет ошибок. Я также проверил, и в cron.daily есть запись в системном журнале на каждый день, как и должно быть.

2) Я убедился, что мои скрипты были исполняемыми, ls -l /etc/cron.daily/:

-rwxr-xr-x 1 root root  139 Nov 20 16:24 bingbot
-rwxr-xr-x 1 root root  142 Nov 20 16:24 bingbotb
-rwxr-xr-x 1 root root  142 Nov 20 16:25 bingbotc

3) Я также добавил строку в /etc/cron.daily/bingbot перед вызовом моего скрипта, которая создаст файл с датой запуска, просто чтобы убедиться, что это не проблема с моим скриптом (echo "Time: $(date). BINGREWARDS SCRIPT RAN." >> /home/user/bingbot.txt) Однако на следующий день он не создал bingbot.txt поэтому я знаю, что он не запустился.

4) Я запустил свой скрипт вручную из /etc/cron.daily/bingbot он отлично работал и создал файл с датой.

5) Мой сценарий не требует разрешений sudo.

6) Содержание /etc/cron.daily/bingbot:

#!/bin/sh
echo "Time: $(date). BINGREWARDS SCRIPT RAN." >> /home/toshiba/bingbot.txt
python /home/user/Desktop/BingRewards/mainpy

7) ОБНОВЛЕНИЕ Попытка запустить anacron вручную sudo run-parts /etc/cron.daily которая успешно запустила мой скрипт. Интересно ... в журнале я получаю:

Nov 22 17:01:14 ubuntu16 anacron[15605]: Anacron 2.3 started on 2017-11-22
Nov 22 17:01:14 ubuntu16 anacron[15605]: Can't open timestamp file for job cron.daily: Permission denied
Nov 22 17:01:14 ubuntu16 anacron[15605]: Aborted

После того, как он закончился, я снова запустил sudo run-parts /etc/cron.daily и это не дало этой ошибки; Nov 22 17:35:55 ubuntu16 anacron[16777]: Updated timestamp for job cron.daily' to 2017-11-22 Возможно, это была ошибка разрешения, и она начнет работать.Но что могло вызвать эту проблему с разрешениями?

ОБНОВЛЕНИЕ2 Anacron не удалось запустить сценарии и сегодня. Та же ошибка "Отказано в доступе", что и в журнале выше. Кроме того, строка в /etc/crontab выполняет anacron от имени пользователя root следующим образом:

25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )

ОБНОВЛЕНИЕ 3 После перезагрузки компьютера проблема ушла на ~ 3 дня, но затем снова появилась. 25-го числа в системном журнале было сказано, что cron.daily завершил работу, что выглядит странно. Однако 26-го числа это сработало, потому что в системном журнале сообщалось, что он обновил отметку времени. 27-го он полностью не смог бежать. Это безумие. Я не могу понять, что является причиной этого.

В чем может быть причина того, что он не запускает мой скрипт?

1 ответ1

1

У меня была такая же проблема на EL6 (не на Debian), но причина могла быть той же. У меня были неправильные разрешения на /etc/cron.hourly/0anacron (неправильно = chmod 600) из-за сценария безопасности. Я переустановил cronie-anacron, и он восстановил бит выполнения (т.е. chmod 755), и он начал работать.

Обратите внимание, что /usr /bin /run-parts проверяет, являются ли "части" или файлы в /etc/cron.hourly исполняемыми:

if [ -x $i ]; then

не читаются ли они ... так что смотрите разрешения для этих файлов. Также обратите внимание, что в самом anacron фактически заканчивается cron.hourly (даже если указанные вами задания выполняются ежедневно)

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