我想知道将所有文件和目录制作成存档文件进行传输(例如 by )cpio
,而不是直接传输(例如 by cp
, )有什么好处scp
?
答案1
您可能希望在传输之前压缩一堆文件的原因如下:
压缩:通过压缩一个大文件而不是许多小文件,您将获得更好的压缩效果。至少 scp 可以即时压缩,但是以文件为基础的。
连接:至少对于 scp,它会为它传输的每个文件建立一个新连接。如果您要传输许多小文件,这会大大降低吞吐量。
重新启动:如果您的传输协议允许在中间重新启动传输,则可能比确定传输中断时正在处理哪个文件更容易。
权限:大多数归档程序允许您保留文件的所有权和权限,这在您的传输程序中可能不支持。
文件位置:如果目标位置位于长路径的末尾,或者尚未确定,则将存档传输到目标并稍后决定文件应存放的位置可能会很有用。
完整性:计算和检查单个存档文件的校验和比单独计算和检查每个文件的校验和更容易。
答案2
我这样做是因为它通常更容易处理一个大文件,然后处理数千个小块。
我不必计算每个文件的校验和,大多数时候只需为一个存档创建校验和就足够了。
而且对我来说保留文件权限也更容易。
这些只是我的一些原因。
答案3
如果可以使用rsync,那么首先归档的优势几乎消失了。
- 压缩:rsync 具有内置压缩(选项 -z)。
- 连接数:连接数(一般为1)不随传输文件数的增加而增加。
- 重启:rsync只传输差异,因此增量传输很简单。您可以选择保留部分文件,以便更快地恢复传输。
- 完整性:内部使用校验和,如果你对此感到偏执,可以强制使用 -c 选项,以便再次检查。