linux - 如何根据位置或分区限制作业提交

标签 linux hpc lsf

我想知道是否有一种方法可以根据在 HPC 中进行提交的位置来限制作业提交。

事情是,最近添加了一个暂存盘存储。所以现在我有两个分区。

  1. 主目录
  2. 草稿目录

我希望所有 HPC 用户都被迫只在临时目录而不是主目录中提交他们的作业。

HPC 正在为作业调度程序运行 LSF。那么,我能否通过 LSF 控制作业提交(即 bsub),以便只有在 scratch 目录下提交的作业才能在 HPC 中运行?

提前致谢。

最佳答案

我认为没有办法在本地执行此操作,但有一种方法可以自定义 LSF 提交时检查以拒绝从错误目录提交的作业。查看此文档:

https://www.ibm.com/support/knowledgecenter/en/SSWRJV_10.1.0/lsf_admin/chap_sub_exec_controls_lsf_admin.html

特别是,您想要做的是定义一个 esub 脚本来检查适当的提交 CWD。假设您将脚本命名为 esub.dircheck,它看起来像这样:

#!/bin/sh 

# Reject if submission is under /home
if [[ $PWD/ = /home/* ]]; then
   echo "Job submission from /home forbidden"
   exit $LSB_SUB_ABORT_VALUE 
fi 

现在您可以将 esub.dircheck 放入 $LSF_SERVERDIR(确保它对所有人都可执行)。最后,如果您希望每次作业提交都进行检查,请在 lsf.conf 中设置以下参数:

LSB_ESUB_METHOD=dircheck

最后一点:我只是检查 PWD 在上面的代码中是否有 home 作为前缀,但是如果你想确保你所在的目录在下面,你可能需要做一些更复杂的事情/home 因为可能有符号链接(symbolic link)会破坏前缀检查。 Take a look at this answer for details .

关于linux - 如何根据位置或分区限制作业提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53058593/

相关文章:

c - OpenMP 并行可减慢我的代码速度(C 语言)

bash - 在 slurm 处理的 bash 脚本中评论

partition - 有没有办法将 SLURM 分区中的某些节点设置为优先于其他节点?

centos - LSF 平台错误 : lsb_init: Failed in an LSF library call: Unable to open file lsf. conf

bash - 引用 LSF 作业数组中的作业索引

java - 条形码值生成 pdf linux

c++ - 任何用于 RPC over pipes/internal linux sockets 的开源 C/C++ 库/框架?

linux - Linux 中存储的 `history` 命令的内容在哪里?为什么对终端的 SIGKILL 不会阻止它存储命令?

linux - 命令替换问题(变量为空)

linux - 我杀死它后,该进程会自动再次出现