Инкрементный бэкап rsnapshot

Пользователи компьютеров делятся на 2 категории — те кто делают бэкапы и те кто будут их делать

настал и мой час 🙂
теоретически btrfs умеет средствами фс делать снапшоты и мало того инкрементные снапшоты. с этим более чем имеет смысл повозиться, но немного позже. Хотя бы исходя из того что эта фс все-таки из новых и все глюки из нее не факт что выковырили
короч, не будем выпендриваться и используем горячо любимую rsnapshot
надо подмонтировать диск

 

1 определяем uuid:sudo blkid
при форматировании раздела под бэкап я весьма благоразумно сделал метку для него. Так что выпопать нужный UUID из всей той фигни которая прикручена у меня к материнской плате гораздо проще
/dev/sda1: UUID=»9b0cab9a-614d-4c6a-ba17-54c85f70660f» TYPE=»ext4″
/dev/sda5: UUID=»ef709255-6c8f-48d5-8007-38c8957883d4″ TYPE=»ext4″
/dev/sda6: UUID=»083ffc3f-76ac-495c-b47d-1067f898d23d» TYPE=»ext4″
/dev/sda7: UUID=»97c45e0c-91a9-42dd-80d6-e3af34180a01″ TYPE=»ext4″
/dev/sda8: UUID=»3e393433-c45c-4b51-9f59-5325d21dc5cc» TYPE=»ext4″
/dev/sda9: UUID=»dc95f111-fd7e-4075-b724-644cb3294b0a» TYPE=»swap»
/dev/sda10: LABEL=»back» UUID=»ac992331-8fc2-4712-a0ea-2892ff20902b» TYPE=»ext4″ 
/dev/sdb1: UUID=»14c694ed-1f00-4bd4-b2d9-35493f998a34″ TYPE=»ext4″
/dev/sdc1: UUID=»8f24fef5-f2bc-43ff-afe6-c2ef7c514a37″ TYPE=»ext4″
/dev/sdc2: UUID=»12d60ebd-1a72-4ef0-b536-4310dbfb0f9f» UUID_SUB=»43acd306-37fa-46ed-ae8e-735d11170d06″ TYPE=»btrfs»
/dev/sdc4: UUID=»e52214c6-8023-493e-aefa-0308601279e1″ UUID_SUB=»da5a10f1-265a-46ac-812e-f1ad066b6c1c» TYPE=»btrfs»
/dev/sdc5: UUID=»19d9d85d-da9a-4133-bc87-7cef67fc0415″ TYPE=»swap»
вот он, жирным выделен
2 создаем точку монтирования — папку /backup
3 монтируем винт в /etc/fstab
UUID=ac992331-8fc2-4712-a0ea-2892ff20902b /backup           ext4    defaults        0       2
перезагружаемся — должно подмонтироваться.
4 теперь собственно rsnapshot
sudo apt-get install rsnapshot
настройка его производится в файле /etc/rsnapshot.conf
 
ВНИМАНИЕ!!! при редактировании этого файла не используются пробелы — только символы табуляции. 
 
 
исключить из бекапа надо:
 
exclude *.tmp
exclude /var/cache
exclude /var/tmp
exclude /tmp
exclude /var/tmp
нафиг нам временные файлы?
exclude /backup
а то набэкпишь сам себя
exclude /home
Это у нас на отдельном разделе и пока мы его не трогаем. с ним надо отдельно будет разбираться
Это системное и вообще виртуальная файловая система — только ошибок в лог накидает
exclude /sys
exclude /proc
вот здесь могут быть подключены внешние носители, они нам нафиг в бэкапе не сдались
exclude /media
exclude /mnt
Теперь что собственно бэкапим:
backup / you_site/
в папке с бэкапом будет создаваться папка you_site, вот в ней оно и будет валяться
Делаем первый бэкап
sudo rsnapshot hourly
команда сделает часовой бэкап
в первый раз крутить будет довольно долго, потом будет проще — бэкап-то инкрементный
дальше остается автоматизировать сие деяние по крону
sudo crontab -e
и прописываем:
00 */4 * * * rsnapshot hourly
45 21 * * * rsnapshot daily
15 22 * * 1 rsnapshot weekly
30 22 1 * * rsnapshot monthly
сильно имеет смысл установить более низкий приоритет для rsynс, который собственно является основным движком для rsnapshot
А еще существует сторонний модуль для Webmin, рулящий rsnapshot
Бэкап удаленного компьютера
Для резервного копирования удаленного сервака надо входить на него по ssh
1 варим ключи чтобы компьютер, на который производится бэкап мог ходить на удаленный сервер без пароля
2 в /etc/rsnapshot.conf раскомментируем cmd_ssh
Дальше проще всего опять же сделать через webmin
если через файл конфигурации:
backup root@1.2.3.4:/var/www      you_site-inet/
в общем принцип тот же, только дописывается логин и айпишник, ну или имя сервака.
через вебмин настраивается в «System» «Rsnapshot Backup» и дальше — в закладке Directories
через вебминмодуль можно настроить практически всё что можно сделать в плане бэкапа, за исключением rsnapshot скриптов
несколько неудобно то что при добавлении своих строк в файл rsnapshot.conf он их перемещает в конец файла и валит в общую свалку
как запускаются скрипты
в файле конфигурации есть команда backup_script
формат приблизительно такой:

backup_script      _собственно_скрипт_      _куда_скидывать_результат

подобный скрипт можно использовать например для бэкапа базы данных сайта

что-то типа такого:
backup_script /usr/local/bin/back_site_bd.sh you_site/root/mysql/
внутри скрипта прописаны пароли-логины доступа к БД
например что-то типа такого:
#!/bin/sh
/usr/bin/ssh root@1.2.3.4 ‘/usr/bin/mysqldump -u root -p’пароль_бд’ ‘имя_бд’ | gzip >> /root/mysql/db.sql.gz’
только вот не скидывает он его на локальный комп — сохраняет или в папке root (мы же от root на сервак заходим), ну или куда прописано в скрипте.
а дальше эту папку нужно будет забэкапить обычным способом
почитать:
http://dobroserver.ru/rsnapshot-inkrementalnoe-rezervnoe-kopirovanie
https://www.8host.com/blog/ustanovka-rsnapshot-na-ubuntu/

 

Добавить комментарий