1

我的 virtualbox 中有 oracle 虚拟机,并且我希望能够从主机操作系统运行 shell 脚本,该脚本将:1. 将 .sql 脚本放入 VM 2. 在 VM 上运行 sqlcl 和 .sql 脚本

当我从我的主机运行 oracle sqlcl 时,它会抛出一个错误 - 未知主机。基本上,当我在 VM 机器 bash 中运行 sqlcl 时,它可以工作,当我在 ssh(es) 到 VM 的脚本中运行它时,它不起作用。

我确定我错过了一些关于 linux 中用户/ssh/sessions 的非常基本的东西。如果有人能指出我也应该了解更多信息,那就太好了。

我的 bash 脚本:

#!/bin/bash
sshpass -p 'oracle' sftp -P 2200 oracle@127.0.0.1:/myscripts/ << END_OF_SFTP
    put foo
    pwd
    bye
END_OF_SFTP

sshpass -p 'oracle' ssh -p 2200 oracle@127.0.0.1 << END_OF_SSH
    who
    cd /myscripts/
    ./runscript hello_world.sql
END_OF_SSH

runscript 是我放在我的虚拟机上运行提供的 .sql 脚本的脚本 - 它是这样的:

#!/bin/bash
/u01/userhome/oracle/sqlcl/bin/sql hr/oracle @/myscripts/$1

我得到的输出:

Connected to 127.0.0.1.
Changing to: /myscripts/
sftp>   put foo
Uploading foo to /myscripts/foo
sftp>   pwd 
Remote working directory: /myscripts
sftp>   bye
#I have no idea what below lines mean :( 
#running sqlcl 
Pseudo-terminal will not be allocated because stdin is not a terminal.
oracle   :0           2019-08-03 06:26 (:0)
oracle   pts/0        2019-08-03 06:28 (:0)

SQLcl: Release 19.1 Production on Sat Aug 03 07:19:12 2019

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

  USER          = hr
  URL           = jdbc:oracle:thin:@ORCL
  Error Message = IO Error: Unknown host specified
  USER          = hr
  URL           = jdbc:oracle:thin:@ORCL:1521/ORCL
  Error Message = IO Error: Unknown host specified
4

0 回答 0