|
|||||||
Rsnapshot — инкрементальное резервное копирование
Время создания: 28.04.2016 04:02
Раздел: Компьютер - Linux - Резервное копирование и синхронизация
Запись: xintrea/mytetra_syncro/master/base/146180537252vpq7qn2r/text.html на raw.github.com
|
|||||||
|
|||||||
Полный бэкап с помощью tar и gunzip имеет смысл, когда вы делаете одну единственную резервную копию. Например сдаёте проект заказчику и записываете файлы на болванку, которую торжественно убираете в сейф. Но обычно бекапы делаются регулярно, каждые несколько часов. И тут на помощь спешит инкрементальное копирование. Первый бэкап по сути ничем не отличается от обычного копирования, но в последующие заносятся только изменившиеся с предыдущего раза файлы. Поэтому, например, десять бэкапов будут весить как два. И если вам потребуется оперативно достать файлик из бэкапа — не нужно ничего распаковывать. В этом суть и польза инкрементального бэкапа. Сам процесс заключается в копировании новых файлов и привязки не изменившихся файлов жёсткими ссылками (hard links). Занимается этим rsync, о удобной надстройке над этой утилитой — rsnapshot читайте далее. sudo apt-get install rsnapshot
sudo pacman -S rsnapshot
Файл лога: sudo touch /var/log/rsnapshot Все настройки хранятся в /etc/rsnapshot.conf. Внимание, редактируя этот файл не используйте пробелы, только символы табуляции. sudoedit /etc/rsnapshot.conf
Измените папку, куда будут сохраняться бэкапы: snapshot_root /storage/backup/snapshots/
Раскомментируйте cp: cmd_cp /usr/bin/cp
Задайте количество хранимых бэкапов: retain hourly 6 retain daily 7 retain weekly 4 retain monthly 12
Включите логирование в файл: logfile /var/log/rsnapshot
Исключите из бэкапа нежелательные расширения и директории: exclude *.tmp exclude /var/cache exclude /var/tmp exclude /home/*/.thumbnails exclude /home/*/.cache exclude /home/*/.gvfs
Теперь можно задать папки для бэкапа, синтаксис: backup /home/ localhost/
Вместо безликой папки localhost советую использовать имя хоста. Эта папка будет создана внутри snapshot_root. Например: backup /code/ laundry/ backup /home/ laundry/ backup /etc/ laundry/ backup /usr/local/ laundry/ backup /var/log/rsnapshot laundry/ Проверьте конфиг на отсутствие ошибок: sudo rsnapshot configtest
Если тест ругается на пробелы, то можно автоматически заменить их на табы используя эту команду: sudo sed -i '/^#/!s/ /\t/g' /etc/rsnapshot.conf
Убедитесь, что на диске есть свободное место утилитами df -h или ncdu. И запускайте создание почасового снимка вручную: sudo rsnapshot hourly
Посмотрите сколько он занимает места: sudo rsnapshot du
В будущем, когда появится несколько бекапов, вы сможете сравнивать их этой командой: rsnapshot diff hourly.0 hourly.1 Теперь осталось только настроить cron: sudo crontab -e
Для сервера оптимально делать ночью: 00 */4 * * * rsnapshot hourly 45 3 * * * rsnapshot daily 15 4 * * 1 rsnapshot weekly 30 4 1 * * rsnapshot monthly
Для десктопа, который на ночь выключается, сдвигаем бэкапы на вечер: 00 */4 * * * rsnapshot hourly 45 21 * * * rsnapshot daily 15 22 * * 1 rsnapshot weekly 30 22 1 * * rsnapshot monthly
И не забывайте периодически проверять их кондиционность. Они могут сломаться по тысяче причин и вы останетесь у разбитого корыта. Как уже было написано выше для бекапов используется rsync, поэтому чтобы оптимизировать использование ресурсов добавьте эту строчку в /etc/default/rsync: RSYNC_NICE='10'
Это позволит запускать процесс копирования с малым приоритетом, иначе во время копирования на несколько минут будет сильно проседать производительность системы. После того, как будет сделан первый бекап нужно будет посмотреть, какие папки можно исключить из бекапа. Я рекомендую для этого замечательную утилиту ncdu: sudo ncdu /storage/backup/
Тут уже всё зависит от конкретной системы. Например на своём десктопе я дополнил блок исключений так: exclude *.tmp exclude /home/*/.thumbnails exclude /home/*/.cache exclude /home/*/.gvfs exclude /home/*/.mozilla/firefox/*/Cache/ exclude /home/*/.rvm
Не забудьте проверить синтаксис и результат: sudo rsnapshot configtest sudo rsnapshot hourly sudo ncdu /storage/backup/ |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|