Table of Contents
Rsnapshot
Установка
Установка, как два пальца об асфальт
apt-get install rsnapshot rsync
Настройка
Настраивается rsnapshot в файле /etc/rsnapshot.conf
. Перед редактированием забекапим горемыку:
cp /etc/rsnapshot.conf{,.bak101219}
Rsnapshot – позволяет делать несколько уровней резервных копий. Самый свежий бэкап в списке будет под нулевым номером, остальные бэкапы смещаются вниз на единицу, и так по циклу. <WRAP center round tip 80%> Nota Bene! В конфигурационном файле недопустимы пробелы — используется только табуляция </WRAP>
Приведу основные директивы из данного файла. Место, где будут хранится наши копии:
snapshot_root /var/cache/rsnapshot/
Убедимся, что следующие строки не задокументированы
cmd_cp /bin/cp cmd_rm /bin/rm cmd_rsync /usr/bin/rsync cmd_ssh /usr/bin/ssh cmd_logger /usr/bin/logger cmd_du /usr/bin/du
Определяем интервалы резервного копирования:
######################################### # BACKUP LEVELS / INTERVALS # # Must be unique and in ascending order # # e.g. alpha, beta, gamma, etc. # ######################################### retain alpha 6 retain beta 7 retain gamma 4 #retain delta 3
retain alpha 6 (сохранение alpha 6) означает, что каждый раз, когда rsnapshot альфа запускается, он делает новый снимок, и устраивает ротацию старых снапшотов, оставляя последние шесть (alpha.0 - alpha.5). Здесь можно задать свои собственные интервалы.
Далее определяем каталоги резервного копирования. По умолчанию, дефолтные директивы нам не очень подойдут, поэтому, поменяем на то, что нам собственно надо бэкапить:
############################### ### BACKUP POINTS / SCRIPTS ### ############################### # формат: цель для архивации | куда сохранять снимок (внутри папки snapshot_root) # !!!ВАЖНО!!! указание завершающих слешей "/" в названии папок обязательно # LOCALHOST backup /home/user_name/documents localhost/ ## Задание файлов исключений по маске exclude *.tmp exclude ~* exclude .git/ ## Список включений/исключений. include_file /path/to/include/file # исключено exclude_file /path/to/exclude/file # включено
Здесь указано, что нужно создать резервную копию содержимого каталога /home/user_name/documents
и сохранить его в каталоге /var/cache/rsnapshot/
. Полный путь до /var/cache/rsnapshot/
указывать не нужно, так как он будет считан из конфигурации выше.
Для создания бекапа с сохранением на удаленном хосте, указываем такой путь
# REMOTEHOST backup root@10.10.10.14:/etc/ my-remote/
По завершению конфигурирования, следует проверить синтаксис
rsnapshot configtest Syntax OK
Если все ок, продолжаем!
Тестирование резервного копирования
Выполним команду:
rsnapshot alpha
В каталоге, который был указан в директиве snapshot_root
, должна появится резервная копия, посмотрим на нее:
ls -l /var/cache/rsnapshot/ total 4 drwxr-xr-x 3 root root 4096 Dec 10 11:04 alpha.0
Либо, выполним dry run:
rsnapshot -t alpha
Автоматизация резервного копирования
Для реализации ароматического копирования, как ни странно нам пригодится cron. В фале /etc/cron.d/rsnapshot
добавим задачи:
0 */4 * * * root /usr/bin/rsnapshot alpha 50 23 * * * root /usr/bin/rsnapshot beta 00 22 1 * * root /usr/bin/rsnapshot delta
Где:
- alpha – каждый день будет сниматься шесть alpha snapchot (в 0,4,8,12,16 и 20 часов)
- beta – снимок делаются каждую ночь в 23:50
- delta – снимок будет сделан в 22:00 первый день каждого месяца
Log
В конфигураторе /etc/rsnapshot.conf
нужно снять комментарий с строки:
logfile /var/log/rsnapshot
Полезные команды
Узнать, сколько дискового пространства занимают резервные копии можно командой
rsnapshot du
Сравнение резервных копий
rsnapshot diff alpha.0 alpha.1
Другие статьи
Синхронизация бекапов rsnapshot по протоколу webdav