Não é possível sair do script depois de usar ssh -t -t

1

Estou executando um script de shell que irá ssh para vários servidores, conecte-se aos bancos de dados, execute algumas consultas e saia. O roteiro é como abaixo:

#!/bin/ksh  
for i in server1 server2 server3  
do  
ssh -t -t $i 'sudo su - oracle && bash -s' < /path/r1.sh  
done  
exit

Eu tenho que forçar o tty usando -t -t porque de alguma forma o request_tty -t não funciona em todos os servidores. O script /path/r1.sh é o seguinte:

ALL_DATABASES='cat /etc/oratab|grep -v "^#"|grep -v "N$"|cut -f1 -d: -s'  
for DB in $ALL_DATABASES  
do  
   unset  TWO_TASK  
   export ORACLE_SID=$DB  
   export ORACLE_HOME='grep "^${DB}:" /etc/oratab|cut -d: -f2 -s'  
   export PATH=$ORACLE_HOME/bin:$PATH  
   echo "---> Database $ORACLE_SID, using home $ORACLE_HOME"  
   sqlplus "/ as sysdba" <<-EOF  

select name from v\$database;  
exit;  
EOF  
done  

O problema é que o script é executado apenas no primeiro servidor e depois não sai. Apenas CTRL + C ajuda, mas mata todo o script. Você poderia sugerir uma maneira melhor de integrar os dois scripts?

    
por Amit 09.08.2017 / 23:56

0 respostas