Rsnapshot — утилита для создания копий состояния файловых систем на базе rsync. Она упрощает создание периодических копий с локальной и удаленных машин по ssh. Создает полные снапшотов содержимого файловой системы через заданный интервал времени. Особенность rsnapshot — использование инкрементного копирования, существенно экономящего время выполнения и место, занимаемое для снапшотов.
Чтобы экономить место на диске, файлы, которые не изменились с момента первого бэкапа, линкуются как hard link.
Rsnapshot написан на языке Perl и использует в своей работе утилиту rsync. Может запускаться в работу как вручную, так и по планировщику cron.
Вступление
1. Разделителем между полями должен быть символ табуляции, а не пробел
2. Каталоги должны оканчиваться слешем (/store/ — корректно, /store – не корректно)
3. Есть возможно исключить как каталоги, так и файлы
4. Проверка синтаксиса конфигурационного файла /etc/rsnapshot.conf — rsnapshot configtest
Мой конфигурационный файл
Так как я выполняю копирование по SSH, то выполняю задание от имени remotebackup, которому разрешено в файле sudoers выполнение файла. Как изготовить ключи и настроить авторизацию по ключу, написано тут
После проверки файла конфигурации
Тестовый запуск
После проверки каждого задания можно поместить их в cron. Для того, чтобы задание не пересекались, необходимо разнести их по времени и добавить настройку lockfile, в файле конфигурации. Все статистики по передаче файлов я отключил, так как слишком большой объем. При попытке запуска нескольких заданий одновременно:
CRON
ВАЖНО: используйте табы, а не пробелы между параметрами.