Shell节点支持标准Shell语法,不支持交互性语法。

背景信息

Shell节点仅支持使用独享调度资源组。详情请参见新增和使用独享调度资源组

独享调度资源组上运行Shell节点时,如果您需要访问的目标端有白名单限制,请添加独享调度资源组的白名单至目标端应用,详情请参见新增和使用独享调度资源组

操作步骤

  1. 进入数据开发页面。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的进入数据开发
  2. 鼠标悬停至新建图标,单击通用 > Shell
    您也可以打开相应的业务流程,右键单击通用,选择新建 > Shell
  3. 新建节点对话框中,输入节点名称,并选择目标文件夹
    说明 节点名称必须是大小写字母、中文、数字、下划线(_)和小数点(.),且不能超过128个字符。
  4. 单击提交
  5. 编辑Shell节点。
    1. 编辑Shell节点代码。
      如果您需要在Shell中调用系统调度参数,Shell语句如下所示。
      echo "$1 $2 $3"
      说明 参数1 参数2…多个参数之间用空格分隔。更多系统调度参数的使用,请参见调度参数概述
    1. 单击工具栏中的保存图标,将其保存至服务器。
    2. 单击工具栏中的执行图标,执行编辑的Shell语句。
      如果您需要修改在数据开发页面测试时使用的任务执行资源,请单击工具栏中的高级运行图标,选择相应的独享调度资源组。
  6. 单击节点编辑区域右侧的调度配置,配置节点的调度属性。详情请参见配置基础属性
  7. 保存并提交节点。
    注意 您需要设置节点的重跑属性依赖的上游节点,才可以提交节点。
    1. 单击工具栏中的保存图标,保存节点。
    2. 单击工具栏中的提交图标。
    3. 提交新版本对话框中,输入变更描述
    4. 单击确认
    如果您使用的是标准模式的工作空间,提交成功后,请单击右上方的发布。具体操作请参见发布任务
  8. 任务运维,详情请参见周期任务运维概述
  9. 如何判断Shell自定义脚本任务的成功完成。
    脚本运行成功或者失败是根据进程退出码来进行判断的:
    • 退出码0:表示成功。
    • 退出码-1:表示进程被终止。
    • 退出码2:需要平台自动重跑一次任务。
    • 其它退出码:失败。

    一个Shell任务,如果第一条命令是无效命令,那么最终结果肯定是异常的,这时后面一条输入一条能有效运行的命令,结果会是成功的,具体示例如下:

    #!/bin/bash
    curl http://xxxxx/asdasd
    echo "nihao"

    这个任务在平台上最终成功运行,因为该脚本是正常退出的。

    这时,把上述命令做一个修改,最终示例如下:

    #!/bin/bash
    curl http://xxxxx/asdasd
    if [[ $? == 0 ]];then    
        echo "curl success"
    else    
        echo "failed"    
        exit 1
    fi
    echo "nihao"

    这样最终这个脚本会运行失败。

  10. 在Shell中,如何调用odps任务。

    调用odps任务的Shell命令示例如下:

    /opt/taobao/tbdpapp/odpswrapper/odpsconsole/bin/odpscmd   -u  {accessId}  -
    p {accesskey}   --project=xxxx   --endpoint=xxxxx   -e  "你的代码sql代码"

    其中endpoint地址可参考MaxCompute官网地址:Endpoint