Estou usando a lógica abaixo para executar os trabalhos em paralelo
logdir=$_curr_dir/log
bunch=1
IFS=$'\n'
for hosts in $(< golivedate.txt xargs -r -L "$bunch"); do
IFS=" ";
for host in $hosts; do
# ./runScript.sh $host
golivedt='echo $host | awk -F "," '{print $2}''
cat half_query.txt > satya.sql
echo "and t.create_datetime > '$golivedt' with ur;" >> satya.sql
store='echo $host | awk -F "," '{print $1}''
./runScript.sh $store 1>$logdir/$store.log 2>&1 &
done
wait
done
Aqui golivedate.txt tem registros como < 1240,2015-05-05 >
resultado - > o arquivo satya.sql está tendo apenas a cada 10ª linha.
Para testar, executei o código abaixo e estou exibindo os valores corretos.
logdir=$_curr_dir/log
bunch=10
IFS=$'\n'
for hosts in $(< golivedate.txt xargs -r -L "$bunch"); do
IFS=" ";
for host in $hosts; do
# ./runScript.sh $host
echo $host
golivedt='echo $host | awk -F "," '{print $2}''
store='echo $host | awk -F "," '{print $1}''
echo "and t.create_datetime > '$golivedt' with ur;"
echo $store
echo "================="
#./runScript.sh $store 1>$logdir/$host.log 2>&1 &
done
wait
done
===== Quando eu corri a primeira parte, definindo o grupo = 1, correu bem. O que significa que falta algo ao correr em paralelo (usando &). Por favor, informe.
Tags linux shell-script