我的生产服务器上有一个代码库,它是从远程目录同步的。我想改进 rsync 过程的一件事是让它在执行之前先在本地创建副本并覆盖原始文件。例如
before syncing files from remote :
cp -rf production_code_base production_code_base_old
now syncing remote changes to the production directory
有没有办法做到这一点?
答案1
除了--backup-dir
选项(我没有用过,所以不确定是否合适)之外,您还可以使用 进行“硬链接备份” cp -al production_code_base production_code_base_old
。非常速度很快,因为它不复制数据,并且不会占用未更改文件的空间。
笔记:在这种特定情况下,这是安全的,因为它rsync
从不打开现有文件进行写入,而是将所有内容写入临时文件,然后结束mv
。其他传输系统可能会覆盖现有文件,从而破坏硬链接“备份”。
答案2
嗯,有很多方法可以做到这一点。比如,cp
你刚刚发布的命令。或者你可以使用--backup-dir
rsync 选项。
但是你想实现什么目标呢?使用适当的版本控制是否能更好地完成任务?