Aciona um script em outro servidor

0

Eu tenho um script que, por sua vez, dispara mais 4 scripts em outro servidor sequencialmente. Meu script está aguardando até que o primeiro script seja concluído no servidor de destino e, em seguida, aciona o segundo. Abaixo está o código

SCB_CMD=/sc/db2home/scbinst/bin/reload_scrpt1.sh
SCB_LOG=/sc/db2home/scbinst/log/reload_scrpt1.log

echo 'date' "Executing $SCB_HOST:$SCB_CMD ..." 

ssh $SCB_HOST "$SCB_CMD | tee $SCB_LOG"

RC=$?

#---------------------------------------------------------------------------
# -- Check for errors
#---------------------------------------------------------------------------
if [ $RC -ne 0 ]
then
  echo 'date' "!error occurred executing SCB load script1!" 

  exit 99
fi
#---------------------------------------------------------------------------
SCB_CMD=/sc/db2home/scbinst/bin/reload_scrpt2.sh
SCB_LOG=/sc/db2home/scbinst/log/reload_scrpt2.log

#---------------------------------------------------------------------------
# -- Execute the remote load script
#---------------------------------------------------------------------------

echo 'date' "Executing $SCB_HOST:$SCB_CMD ..." 

ssh $SCB_HOST "$SCB_CMD | tee $SCB_LOG"
--------------------------------------------

Existe uma maneira de acionar todos esses quatro scripts em paralelo no servidor de destino?

    
por krishnabk 04.04.2017 / 08:45

2 respostas

0

& no final de um comando coloca o trabalho em segundo plano.

Eu reescreveria meu script

connector.sh

#!/usr/bin/env bash

echo 'date' "Executing $1:$2"
# 1 host, 2 cmd, 3 log
ssh $1 "$2 | tee $3"

adicione o script runner.sh

#!/usr/bin/env bash
connector.sh 127.0.0.1 /sc/db2home/scbinst/bin/reload_scrpt1.sh /var/log.log &

connector.sh 127.0.0.1 /sc/db2home/scbinst/bin/reload_scrpt2.sh /var/log.log &

connector.sh 127.0.0.1 /sc/db2home/scbinst/bin/reload_scrpt3.sh /var/log.log &
    
por 04.04.2017 / 09:40
0

Você pode iniciar as tarefas em paralelo (supondo que os comandos ssh funcionem na linha de comando se você os executasse individualmente, o que significa que não há qualquer problema com o remoto em relação à questão m / c local. / p>

for i in 'seq 1 4'; do
   SCB_CMD=/sc/db2home/scbinst/bin/reload_scrpt${i}.sh
   SCB_LOG=/sc/db2home/scbinst/log/reload_scrpt${i}.log

   echo 'date' "Launching $SCB_HOST:$SCB_CMD ..."
   ssh "$SCB_HOST" "$SCB_CMD | tee $SCB_LOG" &

   sleep 1
done
    
por 04.04.2017 / 09:41