rsync:本地备份目录在从远程进行同步之前

我的生产服务器上的代码库是从远程目录同步的。 我想改进一下rsync过程的一件事就是在发生之前先制作一个本地副本,然后写入原始文件。 就像是

before syncing files from remote : cp -rf production_code_base production_code_base_old now syncing remote changes to the production directory 

有没有办法做到这一点?

除了--backup-dir选项(我没有使用,所以我不知道是否合适),你可以用cp -al production_code_base production_code_base_old做一个“硬链接备份”。 因为它不复制数据,所以速度非常快,并且不会占用空间来保存不变的文件。

注意:在这种情况下这是安全的,因为rsync永远不会打开现有的文件进行写入,它将所有内容写入临时文件,并在此之后用mv结束。 其他传输系统可能会覆盖现有文件,破坏硬链接“备份”。

那么,有很多方法可以做到这一点。 就像刚刚发布的cp命令一样。 或者你可以使用--backup-dir选项来rsync。

但是你想完成什么? 用适当的版本控制可能会更好吗?