Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在远程服务器::上执行Shell脚本时,未找到sqlplus:命令_Linux_Shell - Fatal编程技术网

Linux 在远程服务器::上执行Shell脚本时,未找到sqlplus:命令

Linux 在远程服务器::上执行Shell脚本时,未找到sqlplus:命令,linux,shell,Linux,Shell,我有两台服务器服务器A,它有一个shell脚本--“Process\u Backup.sh” 我在服务器A-“./Process_Backup.sh”上执行了这个脚本,它执行得很好。基本上,这个脚本连接到服务器A上的oracle数据库并执行一个过程 我需要做的是从不同的服务器B在服务器A上执行脚本“Process\u Backup.sh” 我尝试从服务器B执行命令 ssh test@server1.xxx.com "cd Scripts/Shell; ./Process_Backup.sh"

我有两台服务器服务器A,它有一个shell脚本--“Process\u Backup.sh”

我在服务器A-“./Process_Backup.sh”上执行了这个脚本,它执行得很好。基本上,这个脚本连接到服务器A上的oracle数据库并执行一个过程

我需要做的是从不同的服务器B在服务器A上执行脚本“Process\u Backup.sh”

我尝试从服务器B执行命令

ssh test@server1.xxx.com "cd Scripts/Shell; ./Process_Backup.sh"
但我有以下错误-

line 49: sqlplus: command not found
我在服务器A上安装了所有软件,所以不确定为什么会出现此错误。我不熟悉linux环境。我已经看完了这里贴出的大部分问题,但我的问题似乎是另一种情况


非常感谢您的帮助

Oracle安装了一个文件
oraenv
,该文件设置了一些环境变量,包括
sqlplus
等命令所在的路径。启动登录shell时会包含该文件,执行该操作的命令可能是由安装程序创建的

使用


文件
oraenv
可能在
/usr/local

下面的某个地方,我不明白如果我正在连接到服务器A,脚本是否不会在服务器A上执行?为什么我们需要在服务器B上安装oracle客户端。你能告诉我一些我可以阅读的东西吗。。我的基本知识可能还不清楚。我完全误解了你的问题。我以为您试图在B上运行
/Process\u Backup.sh
。我将删除我的第一条注释以避免混淆。当通过
ssh
调用命令时,它不会为
bash
shell提供登录名的rc脚本,例如
.bash\u profile
.bashrc
,或
.login
.cshrc
用于
csh
外壳,或
.profile
用于
sh
dash
外壳。作为您传递的命令的一部分,或者在
.Process\u Backup.sh
中生成环境变量,或者按照@RalFriedl.所回答的源
oraenv
。上述解决方案有效,但是在我的脚本中,我没有执行bash,因此无法查看bash配置文件
ssh test@server1.xxx.com "source /path/to/oraenv; cd Scripts/Shell; ./Process_Backup.sh"