使用此工具OpenEBS
我需要以某种方式编写bash one衬纸,该衬纸使我可以输入一个大的域列表并在文件中的每个域上运行./dirsearch.py,然后输出状态码200。
我认为我需要使用xargs来做到这一点。
像猫一样的东西| xargs -n1 -P1 -I + ./dirsearch.py。我对xargs和标志不是很熟悉,所以我对如何执行此操作感到好奇。
如果可能的话,我还想详细解释什么标志正确起作用以及为什么这样做。
非常感谢。
答案 0 :(得分:0)
编辑
正如您提到的,xargs可以为您提供帮助。 -L选项将帮助您在每一行上使用xargs -P选项将帮助您在多个进程上运行xargs
cat yourdomainlist | xargs -L1 -P8 python dirsearch.py $1
Well -L选项设置执行python进程之前读取的行数。 -P设置进程数。
例如,我将创建一个包含以下内容的文件test.txt
test1
test2
test3
test4
还有一个脚本test.sh包含
echo $@
此命令:
cat test.txt | xargs sh test.sh
将返回
hello test1 test2 test3 test4
此命令:
cat test.txt | xargs -L 2 sh test.sh
将返回
hello test1 test2
hello test3 test4
这:
cat test.txt | xargs -L 1 sh test.sh
将返回
hello test1
hello test2
hello test3
hello test4
现在,我们验证-P参数:
我编辑我的test.sh文件以添加一个sleep参数:
sleep 10
echo $@
cat test.txt | time xargs -L 1 -P 1 sh test.sh
将返回
hello test1
hello test2
hello test3
hello test4
0.00user 0.00system 0:40.01elapsed
这:
cat test.txt | time xargs -L 1 -P 4 sh test.sh
返回
hello test3
hello test1
hello test2
hello test4
0.00user 0.00system 0:10.00elapsed