连接PuTTY后,无法使用Perl脚本连接到Linux Oracle数据库

时间:2017-07-20 07:12:52

标签: linux bash putty

我有以下问题:

我目前在Windows 10计算机上使用PuTTY连接到我们的Linux服务器之一。如果我使用'标准'PuTTY连接,我没有问题:我可以登录并运行我的Perl脚本来访问Linux服务器上的Oracle数据库。但是,最近我设置了一个新的PuTTY连接(我复制了上面使用的原始工作副本)。与原始版本的唯一区别是我在PuTTY配置窗口的Connection->SSH->Remote command部分输入了以下内容:

cd ../home/code/project1/scripts/perl ; /bin/bash

(我这样做了所以我直接到达包含我所有脚本的文件夹。)

我仍然可以毫无问题地登录到服务器,它直接转到包含我的Perl脚本的文件夹。但是,当我运行脚本来访问Oracle数据库时,我收到以下错误:

DBI connect('server1/dbname','username',...) failed: ERROR OCIEnvNlsCreate. Check ORACLE_HOME (Linux) env var  or PATH (Windows) and or NLS settings, permissions, etc. at PerlDBFile1.pl line 10.
impossible de se connecter à server1 / dbname at PerlDBFile1.pl line 10, <DATA> line 1.

此外,如果我在服务器上运行env命令,则不会列出变量$ORACLE_HOME(如果我在具有标准PuTTY连接的服务器上运行相同的env命令,存在$ORACLE_HOME变量。)

请注意:通过我创建的任何PuTTY会话在服务器上运行任何其他Perl脚本(不访问Oracle数据库)都没有问题。

任何帮助都非常感激。

2 个答案:

答案 0 :(得分:0)

在PuTTY中设置remote命令时,它会跳过默认.bash_profile目录中存在的$HOME的运行。这就是您收到错误的原因。

要解决此问题,请在perl目录中放置.bash_profile的副本,或在远程命令中添加执行.bash_profile的命令

答案 1 :(得分:0)

好的,我有解决方案!...感谢所有回复的人。

基本上,我最初有命令:

cd ../home/code/project1/scripts/perl; / bin / bash(见原帖)

为了让它工作,我用

替换了上面的内容

cd ../home/code/project1/scripts/perl; source~ / .bash_profile; /斌/庆典

我也尝试过:

cd ../home/code/project1/scripts/perl; /斌/庆典; source~ / .bash_profile

但那没用。

希望这有助于某人。

Gauss76