airflow - 如何使用气流的 SSH 操作符运行带有参数的 shell 脚本
问题描述
我正在尝试使用气流在远程系统中运行 Pentaho 作业。我能够使用气流的 SSH 操作符通过 SSH 连接到远程系统并运行 shell 脚本,但我想知道如何将参数传递给 shell 脚本。
例如,shell 命令看起来像
sh -C "$PENT_HOME"/kitchen.sh -file="$PENT_HOME/Details.kjb" -level=Basic > $logFolder/ date -u +"%Y-%m-%dT%H:%M:%SZ"
-Details.log 2>&1
我用于运行不带参数的简单 shell 脚本的 DAG 脚本是
t1 = SSHOperator(ssh_conn_id='SSH-dev',
task_id='ssh_operator',
command='/opt/scripts/test.sh ',
dag=dag)
解决方案
command
参数接受任何 bash/shell 命令,因此您可以这样做,例如:
t1 = SSHOperator(ssh_conn_id='SSH-dev',
task_id='ssh_operator',
command='/opt/scripts/test.sh arg1 arg2',
dag=dag)
在你的情况下:
t1 = SSHOperator(ssh_conn_id='SSH-dev',
task_id='ssh_operator',
command='bash "$PENT_HOME"/kitchen.sh -file="$PENT_HOME/Details.kjb" -level=Basic > $logFolder/date -u +"%Y-%m-%dT%H:%M:%SZ"-Details.log 2>&1',
dag=dag)
推荐阅读
- c++ - 使用向量在 C++ 中合并排序实现
- javascript - 等效于 WebView2 控件中的 WebBrowser.ObjectForScripting 和 WebBrowser.Document
- css - Vuetify - 通过 css 更改 v-data-table 字体大小不起作用
- sql - 按日期限制查询结果
- visual-c++ - 如何添加由构造函数设置的两个变量并在方法中使用它
- javascript - 如何让“onmousemove”改变不同div上的图像?
- mongodb - MongoDB 查找查询 RangeError
- python - com_error:(-2147221005,'无效的类字符串',无,无)
- php - Googlesheet PHP API在电子表格中插入重复的行
- blazor - Blazor 中是否有“OnParameterChanged”事件?