我每天使用 cronjob 将 Linux 系统(ubuntu)备份到 Windows 网络共享上,以便我们组织的备份系统可以获取它。
目前我正在使用 进行复制cp -au
。虽然这可以保留尽可能多的文件系统信息,但我正在考虑先将文件压缩到 tar 或 tar.gz 存档中,然后再进行复制。但是我想尽量缩短将存档复制到 Windows 共享所需的时间 - 我只有 60 分钟的时间窗口。
在这种情况下,仅复制最少量数据的最佳解决方案是什么?作为一个子问题,压缩档案是否会使仅复制更改变得更加困难?
答案1
在这种情况下,仅复制最少量数据的最佳解决方案是什么?
您可以使用rsync
代替cp
。
rsync
只会复制已更改的内容。即使文件只有一部分发生更改,rsync 也足够聪明,能够发现这一点。
它的语法与 scp 类似,并且可以保留所有元信息。
使用rsync -z
,数据也可以被压缩。
-z, --compress 使用此选项,rsync 在将文件数据发送到目标机器时对其进行压缩,从而减少传输的数据量——这在慢速连接中很有用。
请注意,此选项通常可以实现比使用压缩远程 shell 或压缩传输更好的压缩率,因为它利用了未通过连接明确发送的匹配数据块中的隐式信息。