Путаница с cron и anacron (настройка расписания резервного копирования для rsnapshot)
Я пытаюсь настроить не слишком сложное расписание резервного копирования с помощью rsnapshot на ноутбуке с Ubuntu 16.04 LTS. План состоит в том, чтобы сохранять две ежедневные резервные копии и 24-часовую резервную копию. Я думаю, что это первый раз, когда мне приходится что-то делать с cron или anacron. Поэтому у меня есть не только один, но и несколько вопросов, которые меня смущают, и я был бы очень рад получить ответы на некоторые вопросы, так как я нашел некоторую, казалось бы, противоречивую информацию по определенным вопросам и не смог найти каких-либо четких решений для них.
Так как я действительно запутался во многих вещах, мне пришлось быть достаточно рассудительным, чтобы прояснить мои вопросы. Я надеюсь, что вы можете терпеть меня здесь. Для людей TL;DR я выделил актуальные вопросы жирным шрифтом.
Мой crontab выглядит так:
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
и анакронтаб выглядит так:
# These replace cron's entries
1 5 cron.daily run-parts --report /etc/cron.daily
7 10 cron.weekly run-parts --report /etc/cron.weekly
@monthly 15 cron.monthly run-parts --report /etc/cron.monthly
Это стандарт после чистой установки Ubuntu 16.04 Desktop.
Поскольку я полагаю, что в системе обычно настроено множество других заданий cron и anacron, я считаю, что лучше не связываться с этой стандартной конфигурацией.
Тем не менее, я немного озадачен тем, как они работают вместе, и возможными осложнениями, связанными с их работой вместе с моим запланированным графиком резервного копирования.
Прежде всего, я понимаю, что cron - это демон, который выполняет свои задачи точно так, как запланировано в crontab, если компьютер работает в указанное время. В противном случае работа не может быть выполнена. Хорошо. Просто.
Тогда есть анакрон, о котором я прочитал некоторую, казалось бы, противоречивую информацию. Наиболее упрощенная информация заключается в том, что "anacron может выполнять запланированные задачи, даже если компьютер не включен в указанное время. Они будут выполняться при каждом повторном включении компьютера. Таким образом, он подходит для настольных компьютеров, которые делают не работает 24/7 ". Хорошо. Звучит прекрасно. Похоже, это то, что я хочу.
В некоторых местах, которые я читал, anacron - это "демон", тогда в других местах ( например, здесь, на Ask-ubuntu.ru) указывается, что anacron фактически выполняется как cronjob (как продемонстрировано в стандартном crontab выше). Или это может быть как в соответствии с различными настройками? И как я могу знать?
Затем есть информация о том, что "анакрон не выполняет почасовую работу или что-либо в периоды менее одного дня". Похоже, что это подходит для этой стандартной установки crontab и anacrontab выше после чистой установки Ubuntu 16.04, где только anacron ретранслирует только ежедневные, часовые и ежемесячные задания, а /etc/cron.hourly обрабатывается непосредственно cron, и как Я прочитал, что первые две вкладки в каждой записи anacrontab указывают период запланированного задания в днях (например, 1 день для /etc/cron.daily и 7 дней для /etc/cron.weekly - кажется чтобы соответствовать) и период ожидания в минутах после первого запуска системы за день (или, скорее, после запуска anacron; 5 минут для cron.daily и 10 минут для cron.weekly), это также имеет смысл, Хорошо.
Тем не менее, в немецком Ubuntu Wiki ( http://wiki.ubuntuusers.de/) я читал, что anacron теперь может выполнять почасовую работу с Ubuntu 14.04. Но нет описания того, как это сделать, и я не нашел никаких заявлений в той же степени где-либо еще, и я не вижу, как следует указывать почасовую работу в anacrontab. Итак, другой вопрос: можно ли использовать anacron "начиная с версии Ubuntu 14.04" для выполнения почасовой работы? Если так, то как?
Первый действительно загадочный вопрос, который возникает здесь для меня: если cron jobs запускаются только в указанное время, и эти разные cron jobs настроены для запуска anacron для выполнения задач в /etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly, в 6:25, 6:47 и 6:52 соответственно - что, если компьютер фактически никогда не включается так рано утром? Тогда анакрон на самом деле никогда не запускается или как? Как может anacron "работать лучше, чем cron" в некотором смысле (т. Е. Выполнять задачи позже запланированного, если между ними был выключен компьютер), если anacron использует cron?
Так что это мои вопросы о cron и anacron.
Тогда у меня также есть вопросы о собственно rsnapshot, которые, я думаю, мне лучше перенести на новую тему вопроса.
Спасибо за чтение, и любые четкие ответы очень ценятся.
2 ответа
Анакрон не демон; это просто программа, которая запускается cron. Это объясняется в https://help.ubuntu.com/community/CronHowto, в нижней части, под заголовком Как настраивается Anacron. Согласно этой статье, "anacron запускается при каждом запуске, пробуждении, подключении и в 7:30 утра каждый день".
Цитировать из этого раздела этой статьи:
Существует задача Upstart, расположенная в /etc/init/anacron.conf, которая запускает все задания в / etc / anacrontab. Он настроен на запуск при запуске.
Существует файл cron.d (/etc/cron.d/anacron), который запускает задачу Upstart каждый день в 7:30.
Существует файл /etc/apm/event.d/anacron, который вызывает запуск задачи Upstart, когда ноутбук подключен к источнику питания A/C или проснулся.
Что касается того, могут ли последние версии Anacron обрабатывать почасовые задания: я понятия не имею, но это не кажется полезным. Если вы посмотрите в / etc / crontab, то увидите, что задания в /etc/cron.hourly запускаются cron каждый час, независимо от того, существует ли исполняемый файл с именем /usr/sbin/anacron; только файлы в /etc/cron.daily, /etc/cron.weekly и /etc/cron.monthly запускаются cron только в том случае, если не установлен исполняемый anacron.
Насколько я понимаю.... анакрон не демон и управляется cron. cron запускается при загрузке и запускает анакрон. anacron проверяет, пропустило ли что-то запрограммированное с ним расписание, и запускает его.
Так как я вижу это так... может показаться, что вам нужна ежедневная работа в anacron. Что касается почасового в Anacron.. Я также не видел ничего о том, как это можно настроить, поэтому я бы поставил почасовую резервную копию в Cron.
Я знаю, что это не очень хорошо объясняет, но... я думаю, это меня тоже смущает. Я уверен, что кто-то здесь может придумать лучший, более удовлетворительный ответ, но я решил обобщить его.