ETL调度中不乏要用shell脚本来运行DATASTAGE中的JOB,现测试一下DSJOB的用法然后总结一下(边测试边总结)
dsjob -run [-mode <NORMAL | RESET | VALIDATE>] PROJECT_NAME JOB_NAME
-mode为选择运行模式,
NORMAL表示正常运行,此时和不写-mode是一样的;
RESET表示重置,当job在中止状态时要先RESET,之后才能再正常运行;
VALIDATE表示验证,即验证job的可运行性。
例子:dsjob -run -mode NORMAL sn_dev test_job
注:新开发的job一定要先编译,否则,三种mode都不可行。
dsjob -run [-mode <NORMAL | RESET | VALIDATE>] -param <name>=<value> -jobstatus PROJECT_NAME JOB_NAME
-param运行带参数的job
name:参数名字
value:参数值
例子:dsjob -run -param YR_MON_DAY='20111020' sn_dev test_job
-jobstatus运行结束展示job的状态
-warn表示job中有多少条警告时中止job,设置为0表示无限制
例子:dsjob -run -mode NORMAL -warn 0 -jobstatus sn_dev test_ldf_2
正在等待作业...
已完成对作业的等待
作业状态
:(2)
状态码为 2
dsjob -stop PROJECT_NAME JOB_NAME
-stop 停止正在运行的job
例子:dsjob -stop sn_dev test_job
dsjob -lprojects 列出所有的工程
例子:dsjob -lprojects
bpm_dev
sn_dev
test_dev
状态码为 0
如果要列出其他服务器上的工程:
dsjob -server sn130127 -user username -password password -lprojects
此时-server后面用IP的话未成功,报错:Status code = 80011,求高手解答
dsjob -ljobs 项目名:列出项目中所有的job名字
例子:[bpm_etl@sn130127 BPM_ETL]$ dsjob -ljobs sn_dev |more
状态码为 0
ACCOUNT_PROFIT_CURRENCY_P
Auto_Exe
Auto_Run
BANKCARD
BCP_DETAIL_TF
BCP_DETAIL_TF_01_10
BCP_DETAIL_TF_11_20
BCP_DETAIL_TF_21_31
BCP_DETAIL_TF_PATCH
dsjob -jobinfo 项目名 job名:列出指定job的详细信息
例子:[bpm_etl@sn130127 BPM_ETL]$ dsjob -jobinfo sn_dev test_ldf_2
作业状态
:已运行,但带有警告(2)
作业控制器
:test_ldf_3
作业开始时间
:Thu Dec 15 16:22:30 2011
作业 Wave 号
:5
用户状态
:不可获得
作业控制
:0
中间状态
:未在运行(99)
调用标识
:不可获得
最后运行时间
:Thu Dec 15 16:22:40 2011
作业进程标识
:0
调用列表
:test_ldf_2
可重新启动的作业
:0
状态码为 0
【-lstages】列出指定job所用的stage
例子:[bpm_etl@sn130127 BPM_ETL]$ dsjob -lstages sn_dev test_ldf_2
Sequential_File_10
Sequential_File_1
状态码为 0