SSH ждать завершения сценария sql - PullRequest
0 голосов
/ 28 марта 2019

я пытаюсь бежать Добрый день. Я запускаю скрипт на удаленных серверах для теста db_link. Сценарий подключается к базе данных и выполняется тест DB_LINK. На серверах, которые быстро выполняют запрос, я вижу результат, на тех серверах, которые дольше выполняют запрос SQL, ssh не ожидает выполнения сценария sql и продолжает работать. Как можно ожидать завершения SQL-запроса, а затем продолжить сценарий.

FILE=`cat db_list.txt | sort -u`
for I in $FILE
do
echo $I

if [ -n "$I" ]
then
sshpass -p '*******' ssh USER@$I <<EOF 
cd 
. ./DB.env
sqlplus -S / as sysdba <<SQL
SET SERVEROUTPUT ON
SET ECHO OFF
SET FEEDBACK OFF
SET TIMING OFF
spool /tmp/${HOSTNAME}_check_dblink.out
declare
l_dummy dual.dummy%type;
begin
for r in (select db_link from all_db_links) loop
begin
  execute immediate 'select dummy from dual@' || r.db_link into l_dummy;
  dbms_output.put_line('Link ' || r.db_link || ' is OK.');
  rollback work;
  execute immediate 'alter session close database link ' || r.db_link;
exception
  when others then
    dbms_output.put_line('Link ' || r.db_link || ' is not OK: ' || sqlerrm);
end;
end loop;
end;
/
SQL
EOF
fi
done
...