我有两台 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将在目标文件中打印消息并破坏它。