Ubuntu 12.04, как полностью удалить анакрон

Я использую Ubuntu 12.04 для встроенного проекта. Мне нужно, чтобы задания cron выполнялись только в указанное время, потому что время можно продвинуть вперед (что приведет к пропущенному заданию), но эти задания следует пропустить. Во время тестирования, даже когда я помещаю свои crontabs в /etc/cron.d и, например, планирую задание на 13:15, устанавливаю системное время на 13:25, задание будет выполняться в ~ 13: 26. Я не хочу выполнять пропущенные задания, их следует игнорировать (согласно исследованию, которое я провел, это «нормальное» поведение cron). Любые предложения о том, как удалить анакрон и просто сохранить старый старый крон?

Спасибо.

1
задан 10 July 2013 в 23:30

2 ответа

Я не вижу оснований, почему удаление anacron было бы проблематично. Ответ, упомянутый papukaija, не содержит предупреждений также. Тем более, что недостающие задания точно, что Вы хотите, когда время ступается.

В описании пакета говорится:

Необходимо установить эту программу, если система не приводится в действие на 24 часах в день, чтобы удостовериться, что задания обслуживания других пакетов Debian выполняются каждый день.

Так так удалите его с sudo apt-get remove anacron (Не используйте purge таким образом, файлы конфигурации сохранены),

Одна проблема остается (как Вы заметили) - крон видит временные интервалы, меньшие, чем три часа как результаты чего-то как Летнее время, и все еще выполняет пропущенные задания.

Особые условия существуют, когда часы изменяются меньше чем на 3 часа, например, вначале и конец летнего времени. Если бы время переместилось вперед, те задания, которые работали бы во время, которое было пропущено, будут выполнены вскоре после изменения. С другой стороны, если время переместилось назад меньше чем на 3 часа, те задания, которые попадают в повторное время, не будут повторно выполнены.

Изменения часов больше чем 3 часов считаются исправлениями к часам, и новое время сразу используется

Ваш возможный путь вокруг заключается в том, что только задания с точным временем выполнения затронуты.

Только задания, которые работают в определенное время (не указанный как @hourly, ни с '*' в спецификаторе часа или минуты) затронуты. Задания, которые указаны с подстановочными знаками, сразу выполняются на основе нового времени.

Таким образом, если бы Вы хотите выполнить некоторое задание каждые 3 часа, Вы записали бы строку как

25  */3 * * * root /path/so/some/file

Совершенно другой подход (если бы Вы хотите те задания, выполненные самое большее однажды) должен был бы использовать at.

1
ответ дан 10 July 2013 в 23:30

Удаление anacron также удаляет рабочий стол. Другими словами, Ubuntu предполагает, что система без анакрона является сервером. Если это проблема для вас, вы можете попробовать удалить разрешения на выполнение из двоичного файла anacron:

sudo chmod a-x /usr/sbin/anacron
sudo chmod a-x /etc/init.d/anacron

Это потому, что / etc / crontab проверяет наличие anacron, проверяя, / usr / sbin / anacron является исполняемым, и если это не так, ежедневные, еженедельные и ежемесячные задания выполняются синхронно.

0
ответ дан 10 July 2013 в 23:30

Другие вопросы по тегам:

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