将本地文件解压到远程服务器

将本地文件解压到远程服务器

我有两台 Linux 服务器,一台有几个 RAR 文件,另一台是空的。我想提取档案并将内容移动到服务器 2。

问题是:我没有足够的存储空间来提取服务器 1 上的文件。另外,我无法使用 SSHFS,因为服务器 1 上无法加载 FUSE 模块。

我看到unrar有将p输出发送到 STDOUT 的选项。是否可以用这个选项来解决这个问题?

答案1

为什么不直接登录服务器 2,然后执行

scp user@server1://path/to/file.rar . && unrar e file.rar && rm -f file.rar

答案2

我认为仅使用 unrar 和 ssh 是不可能的。

您需要以某种方式在服务器 1 上安装来自服务器 2 的共享,然后解压到安装位置。(也许您可以在服务器 1 上创建 SMB、NFS 或 AFP 共享,至少 samba 应该可以在没有 fuse 的情况下安装)

答案3

我也在寻找同样的东西有可能如果你从档案中提取文件逐个(当然,目标无法知道文件何时结束以及新文件何时开始,只能使用标准输入)!

因此,如果你可以忍受这些限制,请这样做:

 [source:/] # rar p -inul archive.rar filename | ssh user@remoteserver "cat > /path/to/destination/file.ext"

警告:该-inul参数很重要因为如果你不添加它rar将在目标文件中打印消息并破坏它。

相关内容