conceito de script de shell durante a execução em paralelo

0

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.

    
por api1411 14.07.2017 / 06:04

0 respostas