我们的服务器运行的是 Ubuntu Linux,二进制文件是大型 MongoDB 集合的 BSON 转储。像这样的工具有多可靠split
?有没有更快或更好的方法来做到这一点?
答案1
split
非常可靠。我们用它来移植大型日志文件,对于几 GB 的文件(无论如何不是 50 GB),它运行良好。
我相信您可以尝试使用分割来满足您的要求,然后告知我们。
分割成 5GB 的文件
split --bytes=5G inputfile
它会分割成多个5GB的文件,并将其命名为xaa,xab,xac,....等等。
连接
cat x* > outfile
通过这样,您可以在另一端将其连接为单个文件。
答案2
答案3
split
&cat
完全可靠。您还可以像这样在线压缩。假设您的输入文件是dump.bson
:
gzip < dump.bson | split -b 32M - dump.bson.gz.
然后以此方式重构:
cat dump.bson.gz.* | gunzip > dump.bson
提示,这同样适用于xz(dec)
代替g(un)zip
答案4
从你的问题中我们可以假设,在分裂阶段和重组阶段之间可能存在一个传输阶段——在这种情况下,涉及压缩的过程可能会非常有益。
标准 GNUtar
具有-M
创建多卷档案的选项以及-L
定义段长度的选项。结合其中一个压缩选项(例如-z
,,j
...),您可以创建一个工具链,
- 据我所知,每个 Linux 发行版都有
- 提供拆分、重组、压缩和解压缩
- 还有一个好处,就是能够将多个文件打包到单个存档序列中(例如 MongoDB 数据文件夹原样)