Rsnapshot - удобное бекапирование

Abdula аватар

Rsnapshot – консольная утилита для создания резервных копий.

Создает полные снапшотов содержимого файловой системы через заданный интервал времени.
Особенность Rsnapshot - использование инкрементного копирования, существенно экономящего время выполнения и место, занимаемое для снапшотов.
Чтобы экономить место на диске, файлы, которые не изменились с момента первого бэкапа, линкуются как hard link.
Rsnapshot написан на языке Perl и использует в своей работе утилиту rsync. Может запускаться в работу как вручную, так и по планировщику cron.
Настройка Rsnapshot осуществляется традиционно для Linux - редактированием конфигурационного файла.


Установка
Подключить репозитарий Epel и установить командой:

yum install  rsnapshot

При этом, в частности, в каталоге /etc образуется конфигурационный файл rsnapshot.conf


Настройка
Для настройки утилиты необходимо отредактировать файл /etc/rsnapshot.conf
При редактировании допускается использование только знаков табуляции, пробелы недоспустимы и в дальнейшем вызовут ошибки.

Сама простая настройка - указание места, где будут складываться бекап-файлы.
Для этого нужно расскомментировать строку

# cmd_cp     /bin/cp

и указать путь назначения, например:

snapshot_root       mnt/sdc/

Остальные настройки можно оставить по умолчанию.
После окончания настройки необходимо проверить полученный конфиг-файл на отсуствие синтаксических ошибок, для чего используется команда:

rsnapshot configtest

Если синтаксически ошибок не обнаружено, можно запустить Rsnapshot в тестовом режиме, при котором на экран будут выводится исполняемые команды, но без их выполнения:

rsnapshot   -t   hourly

После этого можно запустить первый часовой бекап:

rsnapshot hourly

Первый бекап займет наибольшее место и будет выполняться дольше всего.
Посмотреть занятое место можно следующей командой:

rsnapshot du

Когда бекапов образуется несколько, их можно сравнивать командой:

rsnapshot    diff hourly.0    hourly.1

Если в ручном режиме всё идет как надо, можно перевести утилиту в режим работы по планировщику, например:

00 */4  * * * rsnapshot hourly     # еже?? бекап
45 13   * * * rsnapshot daily     # ежедневный бекап
15 14   * * 1 rsnapshot weekly     # еженедельный бекап
30 14   1 * * rsnapshot monthly     #ежемесячный бекап

Прим. Если какие-то интервалы не определены в кроне, для избежания ошибок при работе Rsnapshot нужно нужно удалить из него оответсующие строки.
Например, если не задан interval hourly, то нужно удалить строку с /usr/bin/rsnapshot hourly.

Улучшения

Чтобы отличать бекапы друг от друга, нужно заменить в конфиге безликое localhost на имя компьютера, даные которого бекапируются.

Чтобы не бекапировать различный незначащий файловый мусор, нужно внести в конфиг его исключения, например:

## Задание файлов исключений
exclude         lost+found
exclude         .Trash/
exclude /home/*/.mozilla/firefox/*/Cache/
exclude /home/*/.mozilla/firefox/*/SDThumbs/
exclude         *.tmp
exclude         ~*
exclude         .git/
exclude /home/*/.thumbnails
exclude /home/*/.cache
exclude /home/*/.gvfs

RSS-материал