Shell:从远程主机获取数据并执行其他一些命令

时间:2011-01-26 10:25:03

标签: linux oracle shell

我需要创建一个shell脚本来执行此操作:

  1. ssh到另一个远程主机
  2. 在该主机和spool命令上使用sqlplus将数据从oracle db获取到文件
  3. 将文件从该主机传输到我的主机
  4. 执行另一个shell脚本来处理数据文件
  5. 我已经完成了第4步shell脚本。现在我必须逐一完成这4个步骤。我想创建一个脚本并完成所有操作。那可能吗?如何将数据从一台主机传输到我的主机?

    我想可能不需要db文件。

    注意:我必须ssh到另一台主机才能使用sqlplus。它是唯一拥有访问数据库权限的主机。

2 个答案:

答案 0 :(得分:5)

# steps 1 and 2
ssh remote_user@remote_host 'sqlplus db_user/db_pass@db @sql_script_that_spools'
# step 3
scp remote_user@remote_host:/path/to/spool_file local_file
# step 4
process local_file

或者

# steps 1, 2 and 3
ssh remote_user@remote_host 'sqlplus db_user/db_pass@db @sql_script_no_spool' > local_file
# step 4
process local_file

或者,一体化:

ssh remote_user@remote_host 'sqlplus db_user/db_pass@db @sql_script_no_spool' |
  process_stdin

答案 1 :(得分:0)

好吧格伦几乎总结了一切。

为了让您的生活更轻松,您可能还需要考虑设置无密码的ssh。与此相关的安全风险略高,但在许多情况下风险可以忽略不计。

这是指向好tutorial的链接。这是一个基于debian的教程,但给出的命令应该在大多数主要的Linux发行版上都是一样的。