我在远程主机(在目录中)有一些文件,我想在目录级别以原子方式执行rsync以在本地主机上提取文件(在分布式设置中)。我可以想到的一种方法是,当我可以在本地主机上备份文件然后用新文件替换旧文件时,这是一个非常简单的情况,但就磁盘空间而言,这种方法效率不高。例如文件大小为10GB,差异只有100 MB。
有没有办法在本地主机上的临时位置存储rsync diff,然后更新本地主机上的文件?
答案 0 :(得分:5)
你可以这样做:
在本地主机和远程主机中的临时文件夹之间运行rsync。要确保只获取diff,请使用--link-dest选项并链接到远程主机中的真实文件夹。
你基本上有这样的命令:
rsync --link-dest =“/ var / www”--archive“/ localhost / path / www /”“remote@example.com:/ var / www_update_20131129”
(/ var / www是要更新的文件,/ var / www_update_20131129 /是“temp”文件夹)
完成rsync操作后,您可以在远程主机中交换www_update_20131129 /和真实的www /文件夹(可能通过软链接www /到www_update_20131129 /)。