【问题标题】:shell script in remote machine not working with ssh远程机器中的 shell 脚本不能使用 ssh
【发布时间】:2014-10-23 21:46:43
【问题描述】:

我正在尝试从机器 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:没有找到适用于:oracle.jdbc.xa.OracleXAException 的类加载器

感谢您的帮助。

【问题讨论】:

  • 这……不错?我们应该如何知道脚本中的内容?

标签: shell ssh sh atg


【解决方案1】:

终于,谜团解开了。这有效 -

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

加载 bash 配置文件的源命令可以解决问题。

【讨论】:

    【解决方案2】:

    如果你能显示remotescript的代码,那么解决起来会更容易。

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

    【讨论】:

      【解决方案3】:

      如果你 ssh 到远程机器,使用

      ssh user@hostname
      

      然后运行脚本

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

      在生成的远程提示符下,您是否得到相同的错误?

      您似乎没有在 JBOSS 中提供正确的 Oracle JDBC 驱动程序。先解决这个错误,然后看看你是否可以通过 ssh 使用单个命令运行它

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-28
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        • 2019-11-16
        • 2016-11-18
        相关资源
        最近更新 更多