diff --git a/LSF-Script/collection/job b/LSF-Script/collection/job index bdb6e187acef86a891d34ba9b2b37faf5bf65201..7699904d5e61cc2928bc2be98db9b0acfc2d7e79 100644 --- a/LSF-Script/collection/job +++ b/LSF-Script/collection/job @@ -5,18 +5,20 @@ import json import os # expected output format: -# [{"jobId":"2035","jobIndex":"1","jobName":"new[1]","user":"admin","sourceCluster":"cluster1","stat":"DONE", -# "queue":"normal01","fromHost":"host2","submitTime":"Jun 16 17:43:11 2021","startTime":"Jun 16 17:43:12 2021", -# "finishTime":"Jun 16 17:44:54 2021","execHome":"/home/admin","outputFile":"","errorFile":"","jobPriority":""," -# execHost":"host2","CPU_USED":"00:00:02","jobDescription":"","exitCode":"","pendReason":"","jobRunTime":"00:01:42"}] -JOB_INFOS_CMD = 'source @SCHEDULER_PROFILE_PATH@;' \ +# [{"jobId":"2035","jobIndex":"1","jobName":"new[1]","user":"lsfadmin","sourceCluster":"cluster1","stat":"DONE", +# "queue":"normal01","fromHost":"addon2","submitTime":"Jun 16 17:43:11 2021","startTime":"Jun 16 17:43:12 2021", +# "finishTime":"Jun 16 17:44:54 2021","execHome":"/home/lsfadmin","outputFile":"","errorFile":"","jobPriority":""," +# execHost":"addon2","CPU_USED":"00:00:02","jobDescription":"","exitCode":"","pendReason":"","jobRunTime":"00:01:42"}] +JOB_INFOS_CMD = 'source @SCHEDULER_PROFILE_PATH@;' \ 'timeout 10 bjobs -a -u all -hms -o \"jobid jobindex job_name user source_cluster stat ' \ 'queue from_host submit_time start_time finish_time exec_home output_dir output_file error_file job_priority ' \ 'exec_host job_description exit_code exit_reason pend_reason run_time delimiter=\'^\'\"' -ARRAY_JOB_INFO_CMD = 'source @SCHEDULER_PROFILE_PATH@; timeout 10 bjobs -A -w ' +JOB_INFO_CMD = 'source @SCHEDULER_PROFILE_PATH@; timeout 10 bjobs ' -ARRAY_SIZE_QUERY_CMD = 'source @SCHEDULER_PROFILE_PATH@; timeout 10 bjobs -a -o \"jobindex\" ' +ARRAY_JOB_INFO_CMD = 'source @SCHEDULER_PROFILE_PATH@; timeout 10 bjobs -A -w ' + +ARRAY_SIZE_QUERY_CMD = 'source @SCHEDULER_PROFILE_PATH@; timeout 10 bjobs -a -o \"jobindex\" ' # jobstatemap for ccp statMap = {'UNKWN': -1, 'RUN': 4, 'PSUSP': 2, 'USUSP': 2, 'SSUSP': 10, 'PEND': 1, 'DONE': 9, 'EXIT': 5, 'WAIT': 3, 'ZOMBI': -1} @@ -98,10 +100,12 @@ for index in range(len(jobInfosArr)): if outputJob['execHome'] == '': outputJob['execHome'] = jobInfo['EXEC_HOME'] jobId = outputJob['jobId'] - arrayJobInfo = os.popen(ARRAY_JOB_INFO_CMD + jobId).read().splitlines() + + bjobInfo = os.popen(JOB_INFO_CMD + jobId).read().splitlines() arraySize = len(os.popen(ARRAY_SIZE_QUERY_CMD + jobId).read().splitlines()) - 1 # 判断是否为数组作业 - if len(arrayJobInfo) == 2: + if len(bjobInfo) > 2: + arrayJobInfo = os.popen(ARRAY_JOB_INFO_CMD + jobId).read().splitlines() arrayJobInfoValue = arrayJobInfo[1].split() if len(arrayJobInfoValue) > 2: outputJob['jobId'] = "{}.{}".format(jobId, outputJob['jobIndex']) @@ -109,6 +113,5 @@ for index in range(len(jobInfosArr)): if arraySize > 1: outputJob['arraySize'] = arraySize outputJobList.append(outputJob) - outputStr = json.dumps(outputJobList) print(outputStr)