Run the for loop in parallel


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Run the for loop in parallel
# 1  
Old 09-20-2013
Run the for loop in parallel

I have the below code which runs on multiple databases , but this runs one-after-one. I will need this to run in parallel so that i could save a lot of time. Please help!!! Thanks in advance

Code:
for Db in `cat /var/opt/oracle/oratab |egrep -v "ASM" |grep -v \# |cut -d\: -f1`
do
{
export ORACLE_SID=$Db
$ORACLE_HOME/bin/sqlplus -s /nolog <<EOF
connect / as sysdba
....
....
exit
EOF
}
done

# 2  
Old 09-20-2013
This is some ugly
for Db in `cat /var/opt/oracle/oratab |egrep -v "ASM" |grep -v \# |cut -d\: -f1`

Replace `` with parentheses $()
Do not cat data to commands, when they can read it them self. cat file | grep test, use grep test file
Why using bot egrep and grep?
If I am correct, you like first field of line that does not contain for ASM nor #
Many commands, that can be down with one command.

Code:
for Db in $(awk -F: '!/ASM|#/ {print $1}' /var/opt/oracle/oratab)

I can not help with the running it multiple.

Last edited by Jotne; 09-20-2013 at 05:06 AM..
# 3  
Old 09-20-2013
thanks for the reply.However I am looking for parallel option here in priority

Code:
for Db in `cat /var/opt/oracle/oratab|cut -d\: -f1`do{export ORACLE_SID=$Db$ORACLE_HOME/bin/sqlplus -s /nolog <<EOFconnect / as sysdba........exitEOF}done

# 4  
Old 09-20-2013
You can try something like this using xargs.
Code:
awk -F: '!/ASM|#/{print $1}' /var/opt/oracle/oratab | xargs -I% -P5 bash -c './sql_script %'


sql_script
Code:
#!/bin/bash
export ORACLE_SID=$*
$ORACLE_HOME/bin/sqlplus -s /nolog <<EOF
connect / as sysdba
....
....
exit
EOF

man xargs
Code:
       -P max-procs
              Run up to max-procs processes at a time; the default is 1.  If max-procs is 0, xargs will  run
              as  many  processes  as  possible at a time.  Use the -n option with -P; otherwise chances are
              that only one exec will be done.

Not tested, only suggestion.

--ahamed
# 5  
Old 09-20-2013
Thanks Ahamad,
But this does not seem to be working for me. Please provide alternatives.
Looking to run the below in parallel on all databases, rather then one after one

Code:
for Db in `grep -v \# /etc/oratab|cut -d\: -f1|egrep -v "+ASM"`
do
export ORACLE_SID=$Db
sqlplus -s /nolog <<EOF
connect / as sysdba
startup
exit
EOF
done

# 6  
Old 09-20-2013
Try just placing an & char after the closing } to execute in background. I'm not sure this will save much time, as side effects may eat up your parallel processing advantages.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Linux

Inconsistency with parallel run

Hi All, I am running a parallel processing on aggregating a file. I am splitting the process into 7 separate parallel process and processing the same input file and the process will do the same for each 7 run. The issue I am having is for some reason the 1st parallel processes complete first... (7 Replies)
Discussion started by: arunkumar_mca
7 Replies

2. Shell Programming and Scripting

Run script in parallel in while loop

Hi I am running a loop which actually runs same script for different argument value passed to it. while read repID do echo "Starting for $repID"; date; perl process_report.pl $repID done<${FILE_TO_READ} However this runs in sequence. I want the loop to not to wait for perl to... (3 Replies)
Discussion started by: dashing201
3 Replies

3. Shell Programming and Scripting

For loop in parallel

Hello, My script shell is: for i in $(seq $nb_lignes) do //command java done Please, how can i execute all iteration in parallel ? Thank you so much. (9 Replies)
Discussion started by: chercheur857
9 Replies

4. Windows & DOS: Issues & Discussions

To run job in parallel in batch

Hi, I am using a batch file to run 2 or more shutdown batch for each of my server like below: Shutdown_serverA.bat Shutdown_serverB.bat ... Is there anyway i can do this in parallel instead of serially:confused: ServerA & ServerB shutdown at the same time in one click (batch). (4 Replies)
Discussion started by: beginningDBA
4 Replies

5. Shell Programming and Scripting

Run a script in parallel

Hey, I am new to UNIX scripting . I have script (ex: start_script) that starts a job in 10 different servers one server after another.Now I want to modify the script so that the script starts the job in all servers parallely (at a time in all servers).and I need the choice of selecting the... (3 Replies)
Discussion started by: mpspsm
3 Replies

6. Shell Programming and Scripting

Run in series and Parallel

I have a list with four dates say load_date.lst contains 2010-01-01 2010-01-31 2010-03-01 2010-03-31 2010-05-01 2010-05-31 2010-07-01 2010-07-31 And I have directory /lll/src/sql with set of sql's 1_load.sql 2_load.sql 3_load.sql I want to run the sql'in series with respective to... (3 Replies)
Discussion started by: sol_nov
3 Replies

7. Shell Programming and Scripting

jobs run parallel - server consumption?

I have a requirement where jobs/scripts need to be run in the background.The concern here is there are around 20 scripts which need to be run in the bg.Does running all the 20 scripts/job at the same time in bg consumes much sever-utilization. If so wot would be the efficient way to run the jobs... (5 Replies)
Discussion started by: michaelrozar17
5 Replies

8. Shell Programming and Scripting

script - how to prevent in parallel run

I have one shell script which is being accessed by many jobs at same time. I want to make the script such that , other job should wait for the script if script is being used by some other job. Is there any way to implement it in script level ? Gops (1 Reply)
Discussion started by: Gopal_Engg
1 Replies

9. Shell Programming and Scripting

Run a command in parallel

Hi all, How do i run a command in parallel 50 times and capturing the result of each run in a separate file Eg: myApp arg1 > run1.txt myApp arg1 > run2.txt ::::::::::::::::::::::::: ::::::::::::::::::::::::: myApp arg1 > run50.txt The above way is sequential. ... (3 Replies)
Discussion started by: jakSun8
3 Replies

10. Shell Programming and Scripting

How to run processes in parallel?

In a korn shell script, how can I run several processes in parallel at the same time? For example, I have 3 processes say p1, p2, p3 if I call them as p1.ksh p2.ksh p3.ksh they will run after one process finishes. But I want to run them in parallel and want to display "Process p1... (3 Replies)
Discussion started by: sbasak
3 Replies
Login or Register to Ask a Question