如何使用 tar 和 gzip 压缩我的 Web 目录文件并从本地计算机通过一个命令下载(使用 rsync)它?

如何使用 tar 和 gzip 压缩我的 Web 目录文件并从本地计算机通过一个命令下载(使用 rsync)它?

我正在重写我原来的问题,因为我意识到这更有效:

我想对我的网站文件进行 tar 和 gzip,然后下载。

我知道我可以使用 tar 和 cvzf 通过一个命令来 tar 和 gzip 它。

然后我可以使用 rsync 将其下载到我的个人计算机,命令如下: rsync -av --stats[电子邮件受保护]:/远程目录路径/文件名 /本地目录路径/文件名

我可以将其合并为一个命令吗?

或者,如果有人可以建议将 Web 目录下载到本地计算机以作为一个文件进行备份的最佳方法。

答案1

您说您并不真正希望将远程服务器的目录树镜像到本地计算机上。在这种情况下,rsync就是错误的工具。您可以tar直接远程内容,将压缩的 tarball 传送到本地计算机:

ssh [email protected] tar -C /path/to/directory -czf - . | cat >tarball.tgz

与 不同的是rsync,这不会在本地维护任何状态,因此如果在传输过程中连接断开,您将不得不再次传输整个存档。解决此问题的一种方法是访问tar远程服务器上的内容,然后用于rsync传输该内容:

ssh [email protected] 'tar -C /path/to/directory -cf - . | gzip --rsyncable >tarball.tgz'
rsync -av [email protected] tarball.tgz .

--rsyncable标志在压缩文件内提供重新启动标记,以便未压缩原始文件中的微小更改不会更改整个压缩结果。

答案2

您可以压缩文件期间使用该选项传输-z,但这对您收到的文件没有影响(除了更快的传输),即它们不会“gzipped”到单个文件中。

您可以 tar 远程目录,然后 rsync 单个文件。如果您有大量小文件需要复制,这可以加快传输过程。

但 rsync 目录并随后构建 tar (作为备份文件)也是有意义的,就像您所做的那样。下次你这样做时,只需改变了文件将被传输,因此得名 rsync。

相关内容