ETL调度中不乏要用shell脚本来运行DATASTAGE中的JOB,现测试一下DSJOB的用法然后总结一下(边测试边总结)
dsjob -run [-mode ] 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 ] -param = -jobstatus PROJECT_NAME
JOB_NAME
-param运行带参数的job
name:参数名字
value:参数值
例子:dsjob -run ?-param YR_MON_DAY='20111020' ?sn_dev
test_job
-jobstatus运行结束展示job的状态
1 正常
2 警告
3错误
-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
-linvocations列出指定job中的所有的invocation
$dsjob -linvocations project_name
job_name
-llinks 列出指定job中的所有的link
-linkinfo 列出指定link的信息
-lparams 列出指定job的所有的parameter (参数)
$dsjob -lparams project_name
job_name
-log 获得job的所有的日志
$dsjob -log project_name
job_name
-logsum 获得job的所有的日志
$dsjob -logsum
project_name job_name
-lognewest
$dsjob -lognewest
project_name job_name
newest code = 0
-logdetail 获得job的所的详细日志
$dsjob -logdetail
project_name job_name first event_id
-report 获得job的所的详细日志
$dsjob -report
project_name job_name