创建任务脚本
=============
下面我们为 copy_dir 任务编写任务脚本。
copy_dir 任务用于将运行模式需要的静态文件拷贝到运行目录。
编写 ecf 文件
--------------
在 ``${TUTORIAL_HOME}/def/ecffiles`` 目录中为 copy_dir 任务创建 ecf 脚本 **copy_dir.ecf**:
.. code-block:: bash
#!/bin/bash
%include
%include
#--------------------------------------
#-------------------
# model run directory
date
test -d ${CYCLE_RUN_BASE_DIR} || mkdir -p ${CYCLE_RUN_BASE_DIR}
# create dir
echo "copy model run directory..."
mkdir -p ${MSG_DIR}
mkdir -p ${CYCLE_MSG_DIR}
mkdir -p ${CYCLE_GMF_DIR}
test -d ${CYCLE_RUN_DIR} || cp -R ${PROGRAM_CON_DIR}/grapes/run ${CYCLE_RUN_BASE_DIR}/
test -d ${CYCLE_FIG_DIR} || cp -R ${PROGRAM_CON_DIR}/grapes/fig ${CYCLE_RUN_BASE_DIR}/
mkdir -p ${CYCLE_DAT_DIR}
mkdir -p ${CYCLE_VTX_DIR}
test -d ${CYCLE_GRIB2_DIR} || cp -R ${PROGRAM_CON_DIR}/grib2 ${CYCLE_RUN_BASE_DIR}/
mkdir -p ${CYCLE_TCMESS_DIR}
mkdir -p ${CYCLE_BAK_DIR}
echo "copy model run directory...done"
date
#---------------------------------------
%include
运行任务
--------
有了任务脚本,就可以在在 ecFlowUI 中运行任务。
右键点击 copy_dir 节点,在弹出菜单中选择 Execute,手动运行任务 copy_dir。
因为我们重新运行了一个出错的作业,所以 ecFlowUI 会自动弹出 Restarted 窗口,列出重新启动的任务。
.. image:: image/ecflow-ui-load-execute-copy-dir.png
在 ecFlowUI 的 Output 标签中可以看到作业脚本和输出日志文件
.. image:: image/ecflow-ui-copy-dir-run-output.png