远程机器中的shell脚本不能与ssh一起使用

时间:2014-10-23 21:46:44

标签: shell ssh sh atg

我正在尝试从机器A执行位于机器B中的脚本。 PS - 该脚本试图在JBOSS服务器上重启ATG实例。 我尝试了以下命令 -

ssh user@hostname /path/to/script/remotescript.sh arg1 arg2
ssh user@hostname "bash -c '/path/to/script/remotescript.sh arg1 arg2'"
ssh user@hostname exec /path/to/script/remotescript.sh arg1 arg2

该脚本在本地工作,但是当从远程位置执行时,脚本会抛出以下异常 -

java.lang.ClassNotFoundException:找不到ClassLoaders:oracle.jdbc.xa.OracleXAException

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

如果您可以显示远程代码,那么解决方案会更容易。

尝试使用ssh -t选项一次。

答案 1 :(得分:0)

如果您使用

ssh到远程计算机
ssh user@hostname

然后运行脚本

/path/to/script/remotescript.sh arg1 arg2

在结果远程提示下,你得到同样的错误吗?

看起来您没有在JBOSS中提供正确的Oracle JDBC驱动程序。首先排除该错误,然后查看是否可以使用单个命令通过ssh运行它

答案 2 :(得分:0)

最后,这个谜团得到了解决。这有效 -

SSH -q USER @ hostname" source /export/home/jboss/.bash_profile; / bin / bash /path/to/script/remotescript.sh arg1 arg2"

带有加载bash配置文件的源命令就可以了。