Как запланировать что-то выполненное однажды использующий anacron?

Так,

Я недавно настраивал cpanel экземпляр на этом сервере, и я был довольно удивлен, поскольку я установил мерзавца без проблемы прежде о полях CentOS прежде.

Таким образом, cpanel заблокировал все пакеты жемчуга от того, чтобы быть установленным или обновил, потому что они не хотят, чтобы обновления повредились или конфликтовали с их пакетами. К счастью вкусный обеспечивает в хороший один раз обходное решение для этого вида ситуации.

конфетка - disableexcludes=main устанавливает мерзавца

3
03.09.2017, 06:27
3 ответа

Anacron является большим для того, что это-... система, чтобы гарантировать, что задания выполняются каждое количество дней N после перезагрузки - не много управления там. Кроме того, это не резидентный демон и поэтому не может заменить crond или фактическое время отправления; это запускает во время начальной загрузки (или, когда вручную вызвано), ожидает соответствующих интервалов прежде, чем проверить некоторые условия, и затем после того как все было проверено или выполнено, это выходит.

Тем не менее это могло быть полезно в Вашей ситуации как резервное копирование для фактического времени отправления. Вы могли сделать что-то как:
echo '@monthly 0 custom1timejob script_or_cmd_here' >> /etc/anacrontab

Затем запланируйте Ваш в задании, удостоверившись включать что-то в сценарий, что любой позволяет anacron знать, что задание было выполнено (путем выполнения date +%Y%m%d > /var/spool/anacron/custom1timejob), или еще более простой: просто удалите запись из anacrontab (sed -i /custom1timejob/d /etc/anacrontab).

Затем в худшем случае задание должно быть выполнено в следующий раз начальные загрузки системы.
(Удостоверьтесь RANDOM_DELAY и START_HOURS_RANGE переменные в/etc/anacrontab [видят man anacrontab], не собираются смешивать с Вашими ожиданиями все же.)

3
27.01.2020, 21:15
  • 1
    Это помогло мне понять как материал в работах/etc/anacrontab, спасибо. Я рассмотрел взламывание моего собственного интерфейса сверху anacron, пока я не заметил, что его встроенное планирование не более детализировано, чем целый день (контрастировавший с 1 минутой в кроне). –  Marcos 06.03.2012, 12:23
  • 2
    Да. Из-за способности крона читать @reboot псевдоним времени, у меня еще действительно не было случая, где я предпочел anacron крону. –  rsaw 06.03.2012, 15:29

Для заданий, которые выполняются однажды, at уже делает точно, чего Вы требуете. В любое время, atd выполнит все запланированные задания, которые проходят их запланированные даты. В частности, во время начальной загрузки, начиная atd инициировал выполнение любого задания, дата которого стала должной в течение времени простоя.

Для периодических заданий Вы могли объединить установленный график crontab запись и @reboot запись crontab. В @reboot запись, только выполните задачу, если она не была сделана за прошлые 24 часа (или безотносительно интервала, Вы предпочитаете).

42 5 * * * /usr/local/bin/myjob && touch /var/myjob/done
@reboot if [ -z "$(find /var/myjob.done -mtime 1)" ]; then /usr/local/bin/myjob && touch /var/myjob/done; fi
2
27.01.2020, 21:15
  • 1
    Походит могла быть часть решения; как мои программы пошли бы о планировании (или постарались бы не планировать), произвольные jobs+future параметры как, они делают теперь с at? Работать только однажды в будущую дату/час/минуту, или следующее время работы после того назначения. –  Marcos 06.03.2012, 12:29
  • 2
    @Marcos Это уже, что происходит с at: когда atd запускается, это выполняет все задания, дата истечения срока которых находится в прошлом. –  Gilles 'SO- stop being evil' 06.03.2012, 13:02
  • 3
    Если так, спасибо - я должен буду перепроверить свои наблюдения относительно этого все же. Наверняка crontab не действует как этот, таким образом, на основе Вашего комментария, я, возможно, должен преобразовать некоторые свои важнейшие crontab строки к в заданиях, запущенных anacron.daily для выполнения в их определенные crontab времена –  Marcos 06.03.2012, 13:27
  • 4
    , Просто понял, что также не будет работать, если сервер возвратится в конечном счете, anacron выполнения и они at расписания уже находятся в прошлом - был бы интерпретирован как завтра, –  Marcos 06.03.2012, 13:29
  • 5
    @Marcos В заданиях зарегистрирован в определенную дату. at 4pm планирует задание в течение 16:00 сегодня. Если Вы выключите компьютер между 15:00 и 17:00, то задание будет выполняться в 17:00 сегодня, так как это было должно в 16:00 сегодня, и 17:00 сегодня первый раз, когда было в демоне, способном к запуску задания. –  Gilles 'SO- stop being evil' 06.03.2012, 14:24

Это может быть ситуацией где batch опция at мог помочь.

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

вызов: batch "NOW+2 minutes" или любой приемлемый at время вводится.

Я действительно сталкивался с проблемами, пробуя это на Fedora 16. Даже при том, что страницы справочника, в которых говорится это, поддерживают вход времени, команда сообщает, что это не принимает аргументов.

1
27.01.2020, 21:15
  • 1
    Из страницы справочника: executes commands when system load levels permit; in other words, when the load average drops below 1.5, or the value specified in the invocation of atd. Я не хотел бы ограниченный системной нагрузкой, хотя –  Marcos 05.03.2012, 16:52
  • 2
    имен, в страницах справочника действительно говорится это batch не подходит, когда пользователи конкурируют за ресурсы. Если бы Вы хотели переопределить проблему загрузки в среднем и не имели никаких намерений использовать пакет для других процессов, то Вы могли изменить вызов фактического времени отправления и корректироваться -l вверх. В RHEL это расположено в /etc/sysconfig/atd –  Jodie C 05.03.2012, 17:13
  • 3
    batch "now + 1 minutes" <<< "uptime" дает batch accepts no parameters как Вы сказал. Угадайте, что это цементирует ту возможность для Ubuntu, так или иначе. Способность запланировать важна. –  Marcos 05.03.2012, 19:24

Теги

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