Крон: Не могу заставить мое расписание резервного копирования работать с rsnapshot
Я создаю резервные копии с помощью rsnapshot. Теперь он запускается cron, но не тогда, когда / в интервале, который я намеревался.
Ниже приведен график. Это способ минимизировать дублирующие резервные копии. Это должно создавать 8 резервных копий каждые полчаса, затем 8 резервных копий каждый час, затем 18 резервных копий каждые два часа и так далее.
Hour 0 1 2 3 4 5 6 7 8 9 10 11
-------------|-------------------------------------------------------------------
half-hourly | x x x x
hourly | x x x x x x
two-hourly | x x x x x x... (24)
daily |(7)
weekly |(4)
Извлечение из /etc/rsnapshot
interval halfhourly 4
interval hourly 6
interval twohourly 24
interval daily 7
interval weekly 4
Это результат, который работает с понедельника с 00:00 до 14:00.
root@hemulen:~# ls -lat /var/backups/snapshots/
total 48
drwxr-xr-x 12 root root 4096 Sep 20 13:32 .
drwxr-xr-x 4 root root 4096 Sep 20 13:32 halfhourly.0
drwxr-xr-x 4 root root 4096 Sep 20 12:32 halfhourly.1
drwxr-xr-x 4 root root 4096 Sep 20 11:32 halfhourly.2
drwxr-xr-x 4 root root 4096 Sep 20 10:32 halfhourly.3
drwxr-xr-x 4 root root 4096 Sep 20 09:33 hourly.0
drwxr-xr-x 4 root root 4096 Sep 20 07:32 hourly.1
drwxr-xr-x 4 root root 4096 Sep 20 05:32 hourly.2
drwxr-xr-x 4 root root 4096 Sep 20 03:32 hourly.3
drwxr-xr-x 3 root root 4096 Sep 20 02:38 ..
drwxr-xr-x 4 root root 4096 Sep 20 02:33 hourly.4
drwxr-xr-x 4 root root 4096 Sep 20 01:32 hourly.5
Это crontab.
30 * * * * /usr/bin/rsnapshot halfhourly >> /var/log/rsnapshot.run.log 2>&1
0 1,3,5,7,9,11,13,15,17,19,21,23 * * * /usr/bin/rsnapshot hourly >> /var/log/rsnapshot.run.log 2>&1
0 */2 * * * /usr/bin/rsnapshot two-hourly >> /var/log/rsnapshot.run.log 2>&1
0 3 * * * /usr/bin/rsnapshot daily >> /var/log/rsnapshot.run.log 2>&1
0 6 * * MON /usr/bin/rsnapshot weekly >> /var/log/rsnapshot.run.log 2>&1
Что я делаю не так, что мне здесь не хватает?
Я изменил его, и теперь он работает уже неделю. Я опустил два часа, чтобы сохранить 12 резервных копий.
drwxr-xr-x 5 root root 4096 Sep 27 09:33 halfhourly.0
drwxr-xr-x 5 root root 4096 Sep 27 09:03 halfhourly.1
drwxr-xr-x 5 root root 4096 Sep 27 08:33 halfhourly.2
drwxr-xr-x 5 root root 4096 Sep 27 08:04 halfhourly.3
drwxr-xr-x 5 root root 4096 Sep 27 07:33 hourly.0
drwxr-xr-x 5 root root 4096 Sep 27 06:33 hourly.1
drwxr-xr-x 5 root root 4096 Sep 27 05:33 hourly.2
drwxr-xr-x 5 root root 4096 Sep 27 04:33 hourly.3
drwxr-xr-x 5 root root 4096 Sep 27 02:33 hourly.4
drwxr-xr-x 5 root root 4096 Sep 27 01:33 hourly.5
drwxr-xr-x 5 root root 4096 Sep 27 00:33 twohourly.0
drwxr-xr-x 5 root root 4096 Sep 26 22:33 twohourly.1
drwxr-xr-x 5 root root 4096 Sep 26 21:33 twohourly.2
drwxr-xr-x 5 root root 4096 Sep 26 19:33 twohourly.3
drwxr-xr-x 5 root root 4096 Sep 26 17:33 twohourly.4
drwxr-xr-x 5 root root 4096 Sep 26 15:33 twohourly.5
drwxr-xr-x 5 root root 4096 Sep 26 13:33 twohourly.6
drwxr-xr-x 5 root root 4096 Sep 26 11:33 twohourly.7
drwxr-xr-x 5 root root 4096 Sep 26 09:33 twohourly.8
drwxr-xr-x 5 root root 4096 Sep 26 07:33 twohourly.9
drwxr-xr-x 5 root root 4096 Sep 26 05:34 twohourly.10
drwxr-xr-x 5 root root 4096 Sep 26 02:33 twohourly.11
drwxr-xr-x 5 root root 4096 Sep 25 21:33 daily.0
drwxr-xr-x 5 root root 4096 Sep 24 21:33 daily.1
drwxr-xr-x 4 root root 4096 Sep 23 21:33 daily.2
drwxr-xr-x 4 root root 4096 Sep 22 21:33 daily.3
drwxr-xr-x 4 root root 4096 Sep 21 21:33 daily.4
drwxr-xr-x 4 root root 4096 Sep 20 21:32 daily.5
Crontab
0,30 * * * * /usr/bin/rsnapshot halfhourly >> /var/log/rsnapshot.halfhourly.log 2>&1
5 * * * * /usr/bin/rsnapshot hourly >> /var/log/rsnapshot.hourly.log 2>&1
10 */2 * * * /usr/bin/rsnapshot twohourly >> /var/log/rsnapshot.twohourly.log 2>&1
15 3 * * * /usr/bin/rsnapshot daily >> /var/log/rsnapshot.daily.log 2>&1
20 6 * * MON /usr/bin/rsnapshot weekly >> /var/log/rsnapshot.weekly.log 2>&1
Еженедельно, похоже, пока не работает, но изменение MON на 1, вероятно, исправит это. два часа не всегда каждые два часа
2 ответа
Вы должны понимать, как rsnapshot создает резервные копии.
Прежде всего: только первый заданный вами интервал снимает снимок, все остальные интервалы - просто перемещают старые снимки.
В вашем примере:
interval halfhourly 4
сначала перемещает старые снимки с полчаса.n на полчаса.n+1. Затем он делает новый снимок через полчаса.
Когда вы запускаете другие задания (ежечасно, ежечасно, ежедневно, еженедельно), они просто делают последний снимок предыдущего задания. Итак: hourly.4 перемещен в twohourly.0 twohourly.24 перемещен в daily.0 daily.7 перемещен в weekly.0
Это объясняет, почему отметка времени снимка всегда равна 0,32. Потому что на самом деле это "полчасовой" снимок, который был перенесен в "почасовой".
Надеюсь, это поможет, Алекс
Я не очень хорошо разбираюсь в rsnapshot. Но у меня есть пара вопросов. Прежде всего, проверьте /var/log/rsnapshot.run.log и убедитесь, что информация там соответствует именам каталогов, которые вы проверяли в /var/backup. И сообщение об ошибке Возможно, это поможет пролить свет на вещи.
Проверьте журнал и посмотрите, в какое время все работает. При необходимости разделите журналы на отдельные файлы, сделав журнал: /var/log/rsnapshot.run.$$.log.
Это помещает туда PID и должно сделать их уникальными.
Во-вторых, не могли бы вы предоставить backup
разделы вашего сценария? Мне любопытно посмотреть, куда должны идти файлы резервных копий. Опечатка может оставить файлы резервных копий в другом месте системы.
Несколько запутанно смотреть только на временные метки каталога. Возможно, ваш получасовой сценарий изменяет что-то, что также приводит к изменению всех временных меток каталогов. AFAIK, rsnapshot использует жесткие ссылки из предыдущих резервных копий. Таким образом, модификации могут распространяться на другие рабочие каталоги. В этом случае ежечасно будет копироваться из получаса, что объясняет, что вы видите.
Во-вторых, может показаться, что ваша версия cron не поддерживает синтаксис */2. Следовательно, почему ваш почасовой сценарий запускался только один раз, в 2 часа ночи. Это может не справиться и с MON. Поэтому сделайте тестовую работу для каждого из них и убедитесь, что она действительно работает так, как ожидалось.
- Кристофер Карел