使用 ssh|tar 将远程文件备份到 archive.tar.gz

使用 ssh|tar 将远程文件备份到 archive.tar.gz

我正在使用该命令ssh user@remote -p 22 "tar cz my-folder" | tar xz -C /d/local-backups将远程文件夹备份到本地驱动器。

它工作正常,并且文件夹结构在我的本地驱动器中复制得相同。但是,是否可以将文件附加到存档中,而不是提取文件并重新创建完全相同的文件夹结构?

我尝试过类似的事情ssh user@remote -p 22 "tar cz my-folder" | tar rz -C /d/local-backups/arcive.tar.gz,但没有运气。

编辑 这是带有命令的控制台输出

`ssh user@remote -p 22 "tar cz my-folder" | tar rvf -C /d/local-
backups/archive.tar.gz`

/d/local-backups/archive.tar.gz
tar: Removing leading `/' from member names
/d/local-backups/archive.tar.gz
tar: Removing leading `/' from hard link targets

在运行命令之前,我也尝试过创建 archive.tar.gz(里面有一个文本文件),但即使档案存在,文件也不会放入。

有没有一种方法可以让最后只有一个文件“archive.tar.gz”包含从我的服务器检索到的所有文件?

答案1

根据第一步命令的思想,您在远程计算机上创建存档

ssh user@remote -p 22 "tar cz my-folder" 

然后解压到本地机器上

| tar xz -C /d/local-backups
-C - change directory to "/local-backups" before performing an operation.

这就是为什么通过此命令理论上您无法在本地计算机上拥有存档。但无论如何它都比提取它简单得多。如果您只想在远程计算机上创建存档并在本地计算机上保存存档,则可以使用

ssh user@remote -p 22 "tar cz my-folder" > /tmp/archive.tar.gz

该命令将创建一个存档。之后您可以检查结果

$ tar -tvf archive.tar.gz
drwxr-xr-x zidercol/users    0 2021-12-20 18:10 Temp/
-rw-r--r-- zidercol/users  270 2021-12-20 18:10 Temp/T0

相关内容