Похожие вопросы

Можно ли использовать CloneZilla по ssh?
"произошла внутренняя ошибка shile перечисления резервных наборов данных"
Что я могу сделать с ошибкой резервного копирования Windows 7 0x81000037, по-видимому, вызванной точками повторной обработки?
Резервное копирование проектов xcode
ОС Windows 8.1 недостаточно места для создания теневой копии
Почему при копировании папки резервной копии в домашнюю группу указывается 0 байт?
Есть ли альтернатива rsync, которая хранит сжатые и зашифрованные?
вопрос заметки и длинные имена файлов
Каковы причины ошибки "интеллектуальный сбой на жестком диске"?
Минимальная резервная копия для восстановления системы Windows 7
Linux-периодическое резервное копирование SSD на HDD
Фильтры файлов в Google Backup and Sync
В чем разница между ghost и dd?
Инкрементное копирование из Linux в общий ресурс windows
Битовая копия жесткого диска в Windows? [дубликат]

Создание разностной резервной копии с жесткой связью (попытка с помощью rsync)

я пытаюсь создать скрипт, который создает и резервное копирование моментальных снимков и дифференциальная резервная копия,но с жесткими ссылками вместо дублированных файлов. Другими словами:

  • все неизмененные файлы между текущей резервной копией снимка и предыдущим снимком жестко связаны, а не дублируются;
  • все файлы разностной резервной копии являются жесткими ссылками на файлы текущей снимок.


позвольте мне попытаться прояснить. Be:

  • $SRC: исходное дерево, исходные файлы для резервного копирования
  • $PREV: предыдущая резервная копия снимка
  • $SNAPSHOT: текущий снимок резервной копии
  • $DIFF: дифференциальное резервное копирование (только измененные файлы)
  • $RF: rsync флаги, как-aPhvv


я могу создать жестко связанный снимок со следующей командой:

rsync $RF --link-dest=$PREV $SRC $SNAPSHOT

это прекрасно работает.


теперь я хочу создать другое дерево,$DIFF, только с различиями между $SNAPSHOT и $PREV.

я могу сделать именно это с помощью следующей команды:

rsync $RF --compare-dest=$PREV $SNAPSHOT $DIFF

это также работает отлично и очень близко к тому, что я хочу достичь. Единственная проблема заключается в том, что все файлы, которые $PREV и $SNAPSHOT теперь дублируются на $DIFF, Я хотел бы, чтобы они были жесткие ссылки на $SNAPTSHOT вместо обычных копий.


С точки зрения rsync, я хочу сделать следующее: после создания снимка он становится моим новым деревом источников,$SNAPSHOT. Пункт назначения $DIFF. База сравнения с источником $PREV, поэтому довод --compare-dest=$PREV должен позаботиться об этом. Это, как и предыдущая команда, будет копировать только файлы изменено между предыдущим и текущим снимком. Теперь, чтобы скопировать файлы, я хочу, чтобы они сначала сравнивались с файлами в $SNAPSHOT, а затем, если они существуют, связывались с ними вместо копирования. Это --link-dest=$SNAPSHOT делает, и это тоже работает. Оба варианта хорошо работают индивидуально,compare-dest создает дифференциальную копию и link-dest создает связанное дерево, но я хочу смешать оба, как описано выше, который rsync не позволять.

если rsync разрешено, это то, что я хотел сделать:

# Create the snapshot backup:
myhost:~$ rsync $RF --link-dest=$PREV $SRC $SNAPSHOT
     // successful. output suppressed...

# Try to create the hard linked differential backup:
myhost:~$ rsync $RF --compare-dest=$PREV --link-dest=$SNAPSHOT $SNAPSHOT $DIFF
rsync: You may not mix --compare-dest, --copy-dest, and --link-dest.
rsync error: syntax or usage error (code 1) at main.c(1567) [client=3.1.2]


любые идеи о том, как создать $DIFF дерево в стороне, что файлы на этом дереве все жесткие ссылки на $SNAPSHOT ? Или другие предложения о том, как достичь моих целей с другими командами linux?

5
задан Fabiano
источник

1 ответов

вы можете сделать это путем создания $DIFF и $SNAPSHOT в обратном порядке. Первый запуск

rsync $RF --compare-dest=$PREV $SRC $DIFF

затем создайте жестко привязанную копию предыдущей резервной копии:

cp -al $PREV $SNAPSHOT

наконец, hardlink скопировать изменения на там:

cp -al $DIFF $SNAPSHOT

Примечание: я на самом деле не тестировал это, так что не могу гарантировать, что он работает.

0
отвечен Jaap Eldering 2016-09-16 13:48:12
источник

Другие вопросы backup command-line linux rsync shell-script