User Tools

Site Tools


rsnapshot

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

rsnapshot.txt · Last modified: 2023/04/06 10:28 (external edit)