linux 环境有A,B两台服务器。 本地是A。想在B上取得结果,在本地上生成LOG。 前提条件(在B上,不可以生成临时文件。)
本想用, 下面的SSH就解决了。
ssh user1@B "sqlplus u/p@s <<EOF 1>log1.log select * from dual; EOF"
①结果报错,sqlplus 找不到。 我不知道,提示对不对。本身A或B不通过·ssh的话,都是可以执行sql的。
这条路,不知道该怎么解决。
②换一个想法。 切换登录B,让LOG生成在A上。可能吗?
第一种思路:解决方法
ssh oracle@192.168.10.10 "source ~/bash_profile;sqlplus system/oracle@10.168.10.11:1521/zzsid <<EOF 回车
select * from dual; 回车
EOF 回车
" 1>log1.log 回车
你应该是没有刷新环境变量,导致读取不到sqlplus命令和oracle_home,按照我这种方法就可以了
脚本中的命令采用绝对路径试试