并行涂油

Pet*_*ter 9 archive shell-script files parallelism

工作中的海洋学家朋友需要备份数月的数据。她不知所措,所以我自愿去做。有数百个目录需要备份,我们希望将它们 tar/bzip 压缩到与目录同名的文件中。我可以连续轻松地完成此操作 - 但是 - 我想利用我工作站上的数百个内核。

问:使用find与-n -PARGS或GNU并行,我怎么焦油/ bZIP结构的目录,使用尽可能多的内核,同时尽可能的命名最终产品: origonalDirName.tar.bz2

我已经使用 find 同时 bunzip 100 个文件并且它非常快 - 所以这是解决问题的方法,尽管我不知道如何让每个文件名成为每个目录的文件名。

PSk*_*cik 8

只需tarstdout其通过管道传输到pigz. (您很可能不想并行化磁盘访问,只是压缩部分。):

$ tar c- myDirectory/ | pigz > myDirectory.tar.gz
Run Code Online (Sandbox Code Playgroud)

tar像上面这样的简单调用基本上只以可逆的方式连接目录树。在这个例子中,压缩部分可以是分开的。

pigz进行多线程压缩。它使用的线程数可以调整,-p默认为可用内核数。