我有一个命令行perl脚本,我想强调测试。基本上我想要做的是并行运行同一个脚本的多个实例,以便我可以弄清楚我们的机器在什么时候没有响应。
目前我正在做这样的事情:
$ prog > output1.txt 2>err1.txt & \
prog > output2.txt 2>err2.txt &
.
.
.
.
然后我检查ps以查看哪些实例已完成,哪些实例未完成。是否有任何开源应用程序可以自动执行此过程?优选使用网络界面?
答案 0 :(得分:3)
您可以使用xargs并行运行命令:
seq 1 100 | xargs -n 1 -P 0 -I{} sh -c 'prog > output{}.txt 2>err{}.txt'
这将并行运行100个实例。
要获得更好的测试框架(包括通过'spawn'进行并行测试),请查看Expect。
答案 1 :(得分:0)
为什么不使用crontab或Scheduled Tasks自动运行脚本?
您可以编写一些内容来轻松自动解析输出。
答案 2 :(得分:0)
使用GNU Parallel,每个CPU核心运行一个prog:
seq 1 1000 | parallel prog \> output{}.txt 2\>err{}.txt
如果你想为每个CPU内核运行10个编程:
seq 1 1000 | parallel -j1000% prog \> output{}.txt 2\>err{}.txt
观看介绍视频以了解详情:http://www.youtube.com/watch?v=OpaiGYxkSuQ