私はスクリプトを書くのが初めてです。圧縮して別の場所にコピーするディレクトリが 21 個あります。4 つのプロセスを並行して実行し、1 つのプロセスが完了したら別のプロセスを開始します。同様に、21 個のディレクトリが完成するはずです。
次の投稿からいくつかのアイデアを得ました。 実行中のプロセスをチェックするbashスクリプト
実行中のサービスの数が 4 未満の場合は、これを追加して別のプロセスを開始する必要があります。
この件に関して私を助けてください。
私のスクリプトは次のとおりです。ここでは、ping コマンドを使用してプロセスをテストしました。これが機能している場合は、コマンドをコピーするように手配できます。
ジョブ.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
my.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 に値が残ることはありません。
どこを間違えたのか教えてください。
前もって感謝します!!!