LSF使用ESUB强制输入project并记录提交的命令
先touch 2个文件
1、command.log 用于记录日志
2、project.list 用于project识别
记录日志的目录必须所有提交服务器共享
脚本如下
#!/bin/sh # esub By Fasteda # Get log and check project # esub should always redirect stdout to stderr. exec 1>&2 ####强制输入project信息#### . $LSB_SUB_PARM_FILE #source bsub options if [ "$LSB_SUB_PROJECT_NAME" = "" ];then echo "You must specity the project name, eg: bsub -P "project_name" ! " >&2 exit $LSB_SUB_ABORT_VALUE #abort job submission fi ####记录日志#### USER=`whoami` ##用于获取用户名 TIME=`date '+%Y%m%d%H%M%S'` ##用于获取提交时间 PROJ=`cat /log/project.list|grep $LSB_SUB_PROJECT_NAME` ##用于识别project是否合法 ##用于将日志写入command.log文件 ##写入方式为 时间:project名:用户:命令 ####识别project名称并确认合法性#### if [ -z "$PROJ" ];then echo "No such Project name exist" echo \"$TIME\"\:\"$LSB_SUB_PROJECT_NAME\"\:\"$USER\"\:\"$LSB_SUB_COMMAND_LINE\":\"Sub failed\" >> /log/command.log exit $LSB_SUB_ABORT_VALUE else echo \"$TIME\"\:\"$LSB_SUB_PROJECT_NAME\"\:\"$USER\"\:\"$LSB_SUB_COMMAND_LINE\" >> /log/command.log fi
执行效果如下:
如果aaaa不在project.list文件中
bsub -P aaaa hostname No such Project name exist Request aborted by esub. Job not submitted.
日志记录如下:
"20230720092305":"aaaa":"fasteda":"hostname":"Sub failed"
如果aaa在project.list文件中
bsub -P aaaa hostname Job <27069709> is submitted to default queue <normal>.
日志记录如下:
"20230720092447":"aaaa":"fasteda":"hostname"
网友留言: