次のコマンドを実行しています (変数には ssh コマンドの有効な値があり、$file は .sql ファイルです)。
nohup ssh -qn ${ssh_user}@${dbs} "sqlplus $dbuser/${dbpswd}@${dbname} <<ENDSQL | tee "${sql_run_output_file}".ssh.log
set echo off
set echo on
set timing on
set time on
set serveroutput on size 1000000
@${file}
ENDSQL
"
sshコマンドの前に「nohup」なしで上記のコマンドを使用していたとき、1時間ほど後、ソースサーバー(sshを実行している場所)からの接続で「接続リセット....」というエラー/メッセージが表示され、BASHがハングしていましたシェル スクリプト (この ssh コマンドが含まれています)。nohup を使用すると、接続の問題が表示されません。
これが私が手に入れようとしているものであり、あなたの助けが必要です.
- 上記のコマンドを変更して、コマンドが nohup.out を作成しないようにします (| tee の代わりに > を使用できることを読みました... 2>&1 を使用します)。
- 「&」(バックグラウンド)を指定してコマンドを実行したくありません
- sshコマンド/接続(ソースサーバーから開始)を介してターゲットDBサーバーで実行されているsqlplusセッションのログファイルが必要です。
ありがとう。