我在远程主机(在目录中)有一些文件,我想在目录级别以原子方式执行rsync以在本地主机上提取文件(在分布式设置中).我可以想到的一种方法是,当我可以在本地主机上备份文件然后用新文件替换旧文件时,这是一个非常简单的情况,但就磁盘空间而言,这种方法效率不高.例如,文件大小为10GB,差异只有100 MB.
有没有办法在临时位置的本地主机上存储rsync diff,然后更新本地主机上的文件?
你可以这样做:
在本地主机和远程主机中的临时文件夹之间运行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 /).