反馈已提交

网络繁忙

Shell脚本

  • 文档创建者:Roxy
  • 历史版本:29
  • 最近更新:Roxy 于 2023-12-19
  • 1. 概述

    1.1 版本说明

    FineDataLink 版本
    功能变动
    4.0.8-
    4.1.0「脚本参数」下拉框中显示已配置参数

    1.2 应用场景

    用户希望在 FineDataLink 中调用Kettle任务、调用Python计算任务、Java程序/Spark程序,或者进行数据库备份还原等操作。

    1.3 功能说明

    FineDataLink 支持通过执行 Shell 脚本,对接外部的独立数据处理过程。

    例如SVN更新、文件运维清理、调用Kettle任务、调用Python计算任务、调用Spark计算任务、执行数据库备份还原等。

    同时支持使用在脚本中使用 FineDataLink 中设置的参数

    demo 任务详情请参见:https://demo.finedatalink.com/  「SHELL脚本-副本」

    2. 使用限制

    仅支持调用 Linux 系统下后缀名为.sh的脚本文件。

    3. 示例

    3.1 配置SSH协议数据连接

    由于需要在目标服务器执行指定Shell脚本,因此需要首先通过 SSH 远程连接至目标服务器。

    配置 SSH 数据连接步骤请参见:配置SSH协议数据连接

    3.2 准备 shell 脚本

    例如某shell脚本如下图所示:

    其中$0:指所写的shell脚本本身的名字;$1、$2、$3分别为写入的三个参数(三个参数将在 FineDataLink 中进行赋值)。

    执行脚本后,最终会输出三个参数值:参数一:存储在fine_apple数据表中的指定位置数据(kettle);参数二:当前任务运行时间;参数三:手动赋值b3,如下图所示:

    3.3 设置参数

    由于第一个参数$1存储在数据表中,我们使用参数赋值取出。

    首先新建「参数赋值」节点,从 数据表中取出需要使用的数据(例如这里取出kettle)作为参数,如下图所示:

    fine_apple 数据表如下:

    第二个和第三个参数$2、$3 直接使用参数设置,如下图所示:

    3.4 设置 Shell 脚本

    新建 Shell 脚本,将参数赋值节点和脚本连接,选择需要远程执行任务的目标服务器 SSH 连接位置,写入脚本路径,然后设置脚本参数,点击添加参数,将 3.1 节设置参数 b1、b2、b3 添加至脚本参数中,如下图所示:

    注:如果 Shell 脚本在循环容器中使用到其遍历使用的参数时,取到的参数值为遍历过程中的值。

    脚本配置项如下所示:

    配置项
    说明
    SSH连接下拉所有可选的SSH连接
    脚本路径

    填写SSH目标端要执行的Shell脚本完整路径,需注意:

    • 仅支持Linux系统下后缀名为.sh的脚本文件

    • 支持引用参数,引用参数示例如下

    48.png

    脚本参数1)指定传递给脚本的参数。需注意:
    • 脚本参数传入脚本的顺序按照序号自上而下

    • 参数中不能带有单引号,若参数确实需要带有单引号时,通过自定义Shell脚本内的参数使用逻辑来替代实现

    • 不允许出现未配置的脚本参数项

    • 仅支持选择已有参数(不支持同名参数选择)

    2)4.1.0 及之后版本,参数下拉框中显示已配置参数,分为任务内参数、全局参数:

    • 所有同名参数都显示,若同名参数会根据参数优先级(「参数赋值」设置的参数>调用任务中父任务参数>「自定义参数」>全局参数>「内置参数」),显示生效的参数

    • 不可用的参数灰化

    47.png

    执行超时配置脚本开始执行到完全执行完毕的超时时间
    • 默认选择「无限制」

    • 超时时间支持配置范围为0~1000000

    字符编码指定输出字符编码。

    支持设置编码格式:

    • UTF-8

    • GBK

    • BIG5

    • ISO-8859-1

    3.5 执行任务

    点击「保存并运行」,即可执行任务,如下图所示:

    执行任务后,即可在脚本设置的输出文件中看到输出结果,即输出了三个参数,如下图所示:

    3.6 如何判断脚本执行成功

    详情参见:Shell脚本执行结果说明

    3.7 后续操作

    若 Shell 脚本需要周期性调度执行,需要设置任务调度,详情请参见定时任务调度配置

    4. 注意事项

    4.1 文件格式问题

    4.1.1问题描述

    如果脚本文件执行时有类似如下报错:/bin/sh:command not found

    4.1.2 解决方案

    可能是因为文件格式为 Windows 格式,因此需要在 notepad++编译器中转换成 unix 格式,如下图所示:

    或者在 Linux 系统中使用vim 文档名命令打开文档,输入:set fileformat=unix或者是:set ff=unix,然后输入:wq保存。

    4.2 No JVM Shared library file(libjvm.so) found

    4.2.1 问题描述

    脚本文件执行时有类似如下报错:

    4.2.2 解决方案

    环境变量需要定义在~/.bashrc中,如果定义在/etc/profile中的话shell脚本读取不到,因此需要在shell脚本中先执行source /etc/profile






    附件列表


    主题: 数据开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持