Rsnapshot – создание резервных копий
Rsnapshot – базирующаяся на rsync утилита на Perl для создания резервных копий. Особенностью является ориентация на создание полных снапшотов файловой системы через заданный интервал времени, для экономии места на диске, не изменившиеся с момента первого бэкапа файлы ссылаются на оригинальный файл с помощью жестких ссылок.
$ sudo yum install rsnapshot
$ sudo ssh-keygen -t rsa -b 4096 -C "Rsnapshot Backup Server Key" Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:AFba6Jf3PFqN/RW5dWihhOCIRCRT6ewMUZjI+BbftQ8 Rsnapshot Backup Server Key The key's randomart image is: +---[RSA 4096]----+ |o.oBOo. . | |o.==.* o.. . | | . *+.+.... . . | | +.+ .oE . . o. | | . +. o So . ooo | | o. . o.+ . = | | * o .. | | o . . . | | . . | +----[SHA256]-----+
$ sudo ssh-copy-id -i /root/.ssh/id_rsa.pub suser@server.com
После окончания настройки необходимо проверить полученный конфиг-файл на отсуствие синтаксических ошибок, для чего используется команда:
$ sudo rsnapshot configtest
Если синтаксически ошибок не обнаружено, можно запустить Rsnapshot в тестовом режиме, при котором на экран будут выводится исполняемые команды, но без их выполнения:
$ sudo rsnapshot -t alpha
После этого можно запустить первый часовой бекап:
$ sudo rsnapshot alpha
Первый бекап займет наибольшее место и будет выполняться дольше всего.
Посмотреть занятое место можно следующей командой:
$ rsnapshot du
Когда бекапов образуется несколько, их можно сравнивать командой:
$ sudo rsnapshot diff hourly.0 hourly.1
После проверки в ручном режиме – автоматизируем через крон:
$ sudo vim /etc/cron.d/rsnapshot
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.
Чтобы не бекапировать различный незначащий файловый мусор, нужно внести в конфиг его исключения, например:
## Задание файлов исключений 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
https://te-st.ru/entries/rsnapshot-and-borgbckup/
https://www.cyberciti.biz/faq/redhat-cetos-linux-remote-backup-snapshot-server/
https://habr.com/post/45912/
https://poplinux.ru/node/1087