使用bash和常用工具为Linux构建最小任务队列系统的最佳/最简单方法是什么?
我有一个9'000行的文件,每一行都有一个bash命令行,命令是完全独立的。
command 1 > Logs/1.log
command 2 > Logs/2.log
command 3 > Logs/3.log
...我的盒子有多个核心,我想同时执行X任务。我在网上搜索了一种很好的方法。显然,很多人都有这个问题,但到目前为止还没有一个很好的解决办法。
如果该解决方案具有以下特性,那就太好了:
command; command)ls > /tmp/ls.txt)如果它工作在其他Unix-克隆没有太异国情调的要求。
发布于 2009-05-06 23:23:38
您能将命令列表转换为Makefile吗?如果是这样的话,您可以只运行"make -j X“。
发布于 2010-06-10 20:09:18
GNU并行http://www.gnu.org/software/parallel/是一种比PPSS更通用的并行化工具。
如果runfile包含:
command 1 > Logs/1.log
command 2 > Logs/2.log
command 3 > Logs/3.log你可以:
cat runfile | parallel -j+0它将运行每个CPU核心的一个命令。
如果您的命令像上面这样简单,您甚至不需要runfile,但是可以:
seq 1 3 | parallel -j+0 'command {} > Logs/{}.log'如果您有更多的计算机可以进行处理,您可能需要查看GNU并行的--sshlogin和--trc选项。
发布于 2009-05-06 23:17:48
好的,在这里发布了这个问题之后,我发现了以下看起来很有前途的项目:ppss。
编辑:不完全是我想要的,PPSS专注于处理“目录A中的所有文件”。
https://stackoverflow.com/questions/832253
复制相似问题