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

Надежное решение резервного копирования для Linux для полного восстановления системы
Восстановление резервных копий клиента WHS2011 из облака?
Ошибка архивации Windows: 0x81000019 - проверить ВСС и событие СПП журналы
Резервное копирование в NAS или облако
Каковы причины ошибки "интеллектуальный сбой на жестком диске"?
Какая утилита может переместить загрузочный раздел Windows на другой жесткий диск? [закрытый]
Backup Exec 2014 & LTO5 сжатие не работает
Как отключить автоматическое резервное копирование SQL Server?
инкрементное резервное копирование
Минимальная резервная копия для восстановления системы Windows 7
Резервное копирование данных в зашифрованном виде
Как я могу остановить ntbackup, требуя мой новый пароль каждый раз, когда я вынужден изменить свой пароль Windows?
Разделение архивов tar и их загрузка по одному
Обновление резервных копий игры без повторного перемещения всей папки
Есть ли альтернатива rsync, которая хранит сжатые и зашифрованные?

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