使用 SSH 进行管道传输并分割文件

使用 SSH 进行管道传输并分割文件

我在用着

tar zcf - stuff | ssh user@server 'cat > data.tar.gz'

有没有办法在传输时分割文件?

像这样:

tar zcf - stuff | split -b 5G | ssh user@server 'cat > data-${part}.tar.gz'

答案1

是的,该命令被称为split

tar czf - stuff | split -b 5G -d -f 'ssh server "cat >$FILE"'

此选项是 Ubuntu 12.04 中的新增功能。在以前的版本中,split只能拆分为文件,而不能拆分为命令。文件可以命名为管道,但组织命令以从管道读取很麻烦。

如果没有split -f,更简单的方法是忘记使用命令。使用以下命令挂载远程文件系统SSHFS相反,这样您就可以像写入本地文件一样对其进行写入。

mkdir ~/net/server
sshfs user@server ~/net/server
tar czf - stuff | (cd ~/net/server && split -b 5G -d)
fusermount -u ~/net/server

您可能对合适的备份软件感兴趣,例如表里不一反而。

相关内容