我有以下问题:
我目前在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数据库)都没有问题。
任何帮助都非常感激。
答案 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