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

Dell PowerEdge R900 добавление хранилища [закрыто]
Автоматическое решение резервного копирования для Linux (возможно, графический интерфейс для rsync)?
Резервное копирование WD My Cloud вне локальной сети
Создание моментального снимка системы Windows 7 [дубликат]
Не удается подключить файловую систему UDF, созданную с помощью mkudffs, внутри Тома luks
Безопасно ли хранить архивы резервных копий Borg без поддержки файловой системы POSIX (например, диски Windows / cloud)
Резервное копирование Windows 7 через VPN
Можно ли перенести почту IMAP локально без потери информации?
Надежное решение резервного копирования для Linux для полного восстановления системы
Может ли поддержка RSync сервером ускорить процесс резервного копирования?
Как переименовать подраздел в Btrfs?
Установите Macrium Reflect Free Edition на Windows Server 2008 x64
Создание виртуальной машины в качестве резервной копии
Загрузка больших папок в Dropbox с внешнего жесткого диска
dd не работает должным образом в Cygwin

Создание разностной резервной копии с жесткой связью (попытка с помощью 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