LSF ESUB强制输入PROJECT并记录提交日志

常用脚本 6 2239 团子精英 收藏

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"


相关推荐:

网友留言:

  1. tel_j7hflahm
    回复
    请问下openlava如是使用esub功能呢。
    1. 团子精英
      回复
      抱歉,暂时还没确定openlava能够支持esub功能,待测试后与您沟通
  1. tel_qphes0i2
    回复
    请问 openlava可以使用吗?
    1. 团子精英
      回复
      目测是不支持的。
      1. tel_qphes0i2
        回复
        多谢, 请问还有其他办法限制 openlava bsub 必须加 -P XXX 指定项目吗?
        1. 团子精英
          回复
          目前还没有发现。。
您需要 登录账户 后才能发表评论

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码