Pet*_*ter 9 archive shell-script files parallelism
工作中的海洋学家朋友需要备份数月的数据。她不知所措,所以我自愿去做。有数百个目录需要备份,我们希望将它们 tar/bzip 压缩到与目录同名的文件中。我可以连续轻松地完成此操作 - 但是 - 我想利用我工作站上的数百个内核。
问:使用find与-n
-P
ARGS或GNU并行,我怎么焦油/ bZIP结构的目录,使用尽可能多的内核,同时尽可能的命名最终产品: origonalDirName.tar.bz2
?
我已经使用 find 同时 bunzip 100 个文件并且它非常快 - 所以这是解决问题的方法,尽管我不知道如何让每个文件名成为每个目录的文件名。
只需tar
将stdout
其通过管道传输到pigz
. (您很可能不想并行化磁盘访问,只是压缩部分。):
$ tar c- myDirectory/ | pigz > myDirectory.tar.gz
Run Code Online (Sandbox Code Playgroud)
tar
像上面这样的简单调用基本上只以可逆的方式连接目录树。在这个例子中,压缩部分可以是分开的。
pigz
进行多线程压缩。它使用的线程数可以调整,-p
默认为可用内核数。