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