我经常rsync
通过以下方式定期创建某些目录的快照
PAR="-aP --chmod=a-w --no-owner"
# Create diffshot
rsync $PAR --compare-dest=$CURRENT_SNAPSHOT $SOURCE/ $DEST.changeset.incomplete
find $DEST.changeset.incomplete -type d -empty -delete
mv $DEST.changeset{.incomplete,}
# Create actual snapshot
LNK="--link-dest=$PREVIOUS --link-dest=$DEST.changeset"
rsync $PAR $LNK $SOURCE/ $DEST.incomplete
mv $DEST{.incomplete,}
这样$DEST
包含一个快照(硬链接到上一个快照$PREVIOUS
)并$DEST.changeset
包含一个基本的 diffshot,即仅包含已修改或创建的文件(但没有有关简单mv
s 或文件删除的信息)。为了使快照只读,我只需rsync
使用--chmod=a-w
- 原始权限并不那么重要,因为它基本上总是ug+w
,但我想知道是否有其他更有效的方法来实现只读状态。无论如何,我的主要问题是
如何将两个调用
rsync
合并为一个/加速?