я пытаюсь создать скрипт, который создает и резервное копирование моментальных снимков и дифференциальная резервная копия,но с жесткими ссылками вместо дублированных файлов. Другими словами:
- все неизмененные файлы между текущей резервной копией снимка и предыдущим снимком жестко связаны, а не дублируются;
- все файлы разностной резервной копии являются жесткими ссылками на файлы текущей снимок.
позвольте мне попытаться прояснить. 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?
Komp






















