我的 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