1

我正在运行以下命令(其中变量具有 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 shell 脚本(其中包含这个 ssh 命令)。当我使用 nohup 时,我没有看到连接问题。



这是我想要得到的,需要你的帮助。

  • 更改上面显示的命令,以便该命令不会创建 nohup.out(我是否读过我可以使用 > 而不是 | tee ...并使用 2>&1)
  • 我不想运行给出“&”的命令(背景)
  • 我确实想要通过 ssh 命令/连接(从源服务器启动)在目标数据库服务器上运行的 sqlplus 会话的 LOG 文件。

谢谢。

4

1 回答 1

1

ssh在下运行时仍然会丢失连接nohup,因此这并不是一个好的解决方案。如果可能,我建议您将 sql 文件通过复制scp到目标服务器,然后ssh进入服务器,打开 ascreen并从那里运行命令(或在 下运行nohup)。这是一个选择吗?

于 2013-06-05T18:48:03.233 回答