【发布时间】:2012-07-03 06:34:58
【问题描述】:
我是脚本新手。 我有 21 个目录要压缩并复制到另一个位置。 我想并行运行 4 个进程,如果一个进程完成,则启动另一个进程。同样,应该完成 21 个目录。
我从以下帖子中得到了一些想法。 bash script to check running process
我需要这个添加,如果正在运行的服务数量
请帮我解决这个问题。
我的脚本如下。这里我使用 ping 命令来测试进程。如果这是工作,我可以安排它来复制命令。
job.sh
#!/bin/bash
cat my.txt |while read line
do
run_count=`ps eax | grep ping | grep -v grep | wc -l`
if [ 4 -gt ${run_count} ]
then
/home/cms.sh $line &
fi
done
cms.sh
#!/bin/bash
value=$1
cmd=ping
host=yahoo.com
$cmd -c $1 $host >> log-$1.txt
我的.txt
100
250
150
174
182
140
320
139
150
120
110
99
156
180
230
132
123
119
156
149
162
如果我运行它,它将开始使用 my.txt 中的前 4 行运行 4 个进程。完成最初的 4 个进程后,它将不会继续保留 my.txt 中的值。
请让我知道我在哪里做错了。
提前谢谢你!!!
【问题讨论】:
-
你试过什么?你有什么代码可以给我们看吗?您将如何使用一项服务做到这一点?
标签: bash