Apache气流命令在SSHOperator中找不到



我正在尝试使用SSHOperator SSH到远程机器并通过命令行运行外部应用程序。我已经通过管理页面设置了SSH连接。

这段代码用于定义命令和到外部机器的SSH连接。

sshHook = SSHHook(ssh_conn_id='remote_comp')
command_1 ="""
cd /files/232-065/Rans
bash run.sh
"""

其中run.sh运行shell脚本:

#!/bin/sh
starccm+ -batch run_export.java Rans_Model.sim

它只是运行商业软件starccm+和我指定的一些选项。

本节定义任务:

inlet_profile = SSHOperator(
task_id='inlet_profile',
ssh_hook=sshHook,
command=command_1
)

我已经通过给出一个简单的'ls'命令并检查输出来确认SSH连接工作。

我得到的错误是:
bash run.sh, error: run.sh: line 2: starccm+: command not found

当我登录到机器时,'run.sh'中的命令可以工作(它不需要GUI)。这让我认为SSH会话有问题,它与Apache气流登录的会话不一样,但我不确定如何解决这个问题。

有人有这方面的经验吗?

SSH连接没有问题(至少从错误消息来看)。但是,问题在于starccm+的安装路径。

Please check ofstarccm+.

检查安装路径是否为$ path环境变量

的一部分
$ echo $PATH

如果没有,那么将其安装在标准位置,如/bin/usr/bin等(前提是它们包含在$PATH变量中),或者将安装的目录导出到PATH变量中,如下所示

$ export PATH=$PATH:/<absolute_path>

这是不理想的,但如果您在设置路径变量时遇到困难,您可以运行starccm,并声明完整的路径,如:

/directory/where/star/is/installed/starccm+ -batch run_export.java Rans_Model.sim

相关内容

  • 没有找到相关文章

最新更新