Я новичок в системе Unix, поэтому, пожалуйста, потерпите, если это звучит глупо.
Самый распространенный способ использования rsync для инкрементного резервного копирования - это сделать так
rsync -av --delete <source> <destination>
Есть ли способ сделать это таким образом, чтобы вы сравнивали каталог1 с каталогом2, но затем сохраняли результат в каталоге3?
По сути, я хочу иметь серию ежедневных инкрементных резервных копий с одной полной резервной копией для использования в качестве основы.
Итак, если у меня есть эти папки и сегодня 20130103
,
/folder/to/back/up <-- source
/backup/base <-- base
/backup/20130101 <-- incremental
/backup/20130102 <-- incremental
Я хочу сравнить /folder/to/back/up
с участием /backup/base
и сохраните результат в новой папке, /backup/20130103
.
Похоже, ты действительно хочешь rsnapshot, который является оболочкой для rsync и пары других инструментов. Он автоматизирует создание структуры инкрементного резервного копирования, которая очень близка к тому, что вам нужно.
В флаги rsync смотреть на
--compare-dest=DIR also compare received files relative to DIR --copy-dest=DIR ... and include copies of unchanged files --link-dest=DIR hardlink to files in DIR when unchanged
rsync -aP --link-dest = PATHTO / $ PREVIOUSBACKUP $ SOURCE $ CURRENTBACKUP
Основной принцип этой статьи («Машина времени для всех существующих Unix») был реализован множеством разных способов в разных программах, и rsnapshot - еще одна из них.
Дирвиш заслуживает особого упоминания (исходный автор внес --link-dest
патч к rsync); это система резервного копирования Perl, использующая rsync и жесткие ссылки (аналогичные rsnapshot) с папками назначения с меткой даты, переменными правилами истечения срока действия, правилами исключения и т. д .; поскольку он использует жесткие ссылки, каждая резервная копия появляется в файловой системе как «полная резервная копия», но копируются только «инкрементные» изменения.
Если у вас есть (или вы можете установить) Perl, я настоятельно рекомендую Dirvish для того, что вы хотите.