Плутати в зв’язку між кроном і анакроном


19

Я даремно гуглю, щоб викласти загальне пояснення того, як крон і анакрон працюють разом. Сторінки людини трохи занадто глибокі, щоб зануритись для мене в цей момент.

Я плутаюся, тому що додаю завдання на crontab, і це працює, але коли я видаляю їх із crontab, вони все ще працюють під анакроном. Я бачу завдання в /etc/cron.daily, але я не впевнений, як вони там потрапили. cron працює у моїй системі завжди, але не анакрон. Насправді я бачу, що анакрон запускається cron!

В основному я хотів би представити на рівні користувача інформацію про те, як додавати та видаляти завдання, оскільки відповіді, що легко переглядаються в Google, що дозволяють чітко редагувати crontab, не є повною. Посилання на підручник буде добре.

Відповіді:


19

І те, cronі anacronдемони, які можуть планувати виконання повторюваних завдань на певний момент часу, визначений користувачем.

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

З іншого боку anacron, "анахронічний" і розроблений для систем, які не працюють 24x7. Для його роботи anacronвикористовуються файли з печаткою часу, щоб з’ясувати, коли востаннє виконувалися його команди. Він також підтримує файл так /etc/anacrontabсамо, як cronце робить. Крім того, cron.dailyпрацює анакрон щодня. Отже, anacronможна виконувати роботу лише раз на день, але cronможе працювати так часто, як і кожну хвилину.

Від man anacrontab:

При виконанні Anacron зчитує список завдань з файлу конфігурації, як правило, / etc / anacrontab (див. Anacrontab (5)). Цей файл містить перелік завдань, якими керує Anacron. Кожен запис завдання вказує період у днях, затримку хвилин, унікальний ідентифікатор завдання та команду оболонки.

Для кожної роботи Anacron перевіряє, чи виконувалася ця робота за останні n днів, де n - період, визначений для цієї роботи. Якщо ні, Anacron виконує команду оболонки завдання, очікуючи кількість хвилин, вказану як параметр затримки.

Після завершення команди Anacron записує дату в спеціальний файл часової позначки для цієї роботи, щоб він міг знати, коли її виконати ще раз. Для розрахунків часу використовується лише дата. Година не використовується.

Це означає, що якщо завдання планується виконувати щодня, а комп'ютер був вимкнений протягом цього часу, коли анакрон запускається, то можна побачити, що завдання востаннє виконувались більше 24 годин тому і виконати завдання правильно.

Наприклад, якщо ви вказали таке в /etc/anacrontab:

7       15      test.daily      /bin/sh /home/username/script.sh

і в той день, коли передбачуване script.shзавдання буде виконано, якщо система не працює, anacronвиконає script.sh15 хвилин після того, як система відновиться.

Мало довідок:


Дякуємо, що підручник з цифрового океану особливо гарний, як це часто буває. Не впевнений, як я пропустив це, тому ціную посилання.
Органічний мармур

Спасибі. За допомогою "cron.daily запускає анакрон щогодини", чи ви не "cron.daily запускає анакрон щодня"?
Тім

Дякую за це - Я видалив anacronусі свої VPS, оскільки вони завжди ввімкнуті. (Не маю уявлення, як це потрапило в першу чергу, я не чув про це.) Мої crontabзаписи (щоденні, щотижневі, ...) тепер усі працюють у очікувані часи.
Адамбей
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.