Назад | Перейти на главную страницу

Слияние инкрементных резервных копий rsync

Мне нужно объединить мои инкрементные резервные копии в безопасную папку (которая является основной папкой резервных копий) в порядке даты.

Кто-то помог со сценарием для синхронизации документов каждую ночь с помощью задания cron:

$ for f in `ls -t /var/backups`; do rsync -aL "/var/backups/$f" /var/www/live/documents/; done

Текущая папка:

backup-2011-07-02  backup-2011-06-27  backup-2011-06-22  backup-2011-06-17
backup-2011-07-06  backup-2011-07-01  backup-2011-06-26  backup-2011-06-21  backup-2011-06-16
backup-2011-07-05  backup-2011-06-30  backup-2011-06-25  backup-2011-06-20  backup-2011-06-15
backup-2011-07-04  backup-2011-06-29  backup-2011-06-24  backup-2011-06-19  backup-2011-06-14
backup-2011-07-03  secure             backup-2011-06-23  backup-2011-06-18

Пример структуры папок:

backup-2011-07-03/secure/docs
secure/docs

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

Я не уверен, как лучше всего написать сценарий для объединения всех резервных копий в защищенной папке по дате.

Любые идеи?

Это не то, о чем вы просите, но вы действительно можете каждый день делать полную резервную копию с помощью rsync, при этом она будет загружать и занимать столько же хранилища, сколько обычное инкрементное резервное копирование. Это делается с помощью жестких ссылок. Я написал сценарий, который автоматизирует это, и использую его ежедневно на нескольких машинах. Вы можете скачать его с описанием здесь: http://okrasz-techblog.blogspot.com/2011/02/backing-up-with-rsync.html

Примечание. Когда резервное копирование будет выполнено, оно обновится. last_full_backup.txt с резервным каталогом. Это на случай, если резервное копирование было прервано.

Тогда это должно сработать:

mkdir /var/backups/merged
for f in `ls -t /var/backups/backup-*` ; do cp -an /var/backups/$f/* /var/backups/merged/ ; done