ssh 进入服务器并下载数据

ssh 进入服务器并下载数据

所以我一直在使用这个命令

tar zcf - * | ssh root@ip "tar xzf - -C home/minecraft/multicraft/servers/server2"

上传内容到其他服务器。但是我必须在需要下载内容的服务器的 ssh 中。所以我尝试像这样反转命令

ssh root@ip "tar xzf - -C /home/minecraft/multicraft/servers/server4" | tar zcf - *

它给出错误

gzip: compressed data not written to a terminal. Use -f to force compression.
For help, type: gzip -h
tar: Child returned status 1
tar: Error is not recoverable: exiting now

在我输入命令后它就空转了。

有什么建议吗?谢谢。

答案1

你的命令接近:

ssh root@ip "tar xzf - -C /home/minecraft/multicraft/servers/server4" | tar zcf - *

但是你忘记切换提取和创建 - 现在第一个命令是提取(大概是从无到有),第二个命令是创建。尝试:

ssh root@ip "tar zc -C /home/minecraft/multicraft/servers/server4 ." | tar zxv

答案2

我不确定你为什么要这样做,因为这看起来太复杂了,因为有专门的工具可以做到这一点。也许可以考虑使用 rsync 或 scp?

rsync --progress -rvz root@ip:/home/minecraft/multicraft/servers/server2 .

使用 -r 表示递归,-z 表示压缩。

相关内容