【问题标题】:Check the path of a running script on PBS job scheduler检查 PBS 作业调度程序上正在运行的脚本的路径
【发布时间】:2020-01-05 22:02:28
【问题描述】:

我想检查当前在我的 HPC 平台上运行的脚本在哪里。我知道我可以使用命令qsub 获取作业的名称,它会提示:

                                                                                  Req'd  Req'd  
Job id               Username Queue    Name                 SessID NDS   TSK   Memory Time Us
-------------------- -------- -------- -------------------- ------ ----- ----- ------ ----- -
123456               xxxxx    xxxxxx    script_name         --         5   120     -- 72:00 R

更新:我设法使用 UNIX 命令:“find”、“cat”和“grep”,但我想知道是否有办法直接从PBS 命令。

老问题:(供您参考) 另外,我知道名称是在带有变量

的文件中设置的
#SBATCH -J script_name      

所以我尝试使用“find”、“cat”和“grep”来寻找它:

$ cat $(find . -name '*.sh') | grep script_name

#SBATCH -J script_name

但是,当然,我得到的只是该命令的那一行

有没有办法获取拥有“grep-ed”文件部分的文件的名称/路径?

是否有使用 PBS 命令执行此操作的命令(我也很想知道如何使用“find”、“cat”和“grep”命令来获取它)

【问题讨论】:

  • 我已经设法使用grep -l 'script_name' $(find . -name '*.sh')获取文件名

标签: linux unix hpc pbs


【解决方案1】:

我不太确定您正在运行哪个工作负载管理器。您提到的命令和添加的标签指向 PBS,但脚本中的“SBATCH”表示您正在使用 SLURM。

我可以告诉你,对于 PBS,作业脚本几乎总是在执行主机上 PBS_HOME 目录下的某个目录中。您可以在 /etc/pbs.conf 中找到 PBS_HOME 的路径。作业目录是受根目录保护的目录,因此除非您是根目录,否则您看不到内容。

脚本名称不是您在 qsub 命令行实用程序中提供的脚本名称。相反,它是以您从 qsub 中获得的作业 ID 命名的,并以“.SC”为后缀。

例如,如果 qsub job.sh 为您提供作业 ID“7557.host1”,则作业脚本被命名为“7557.host1.SC”。

【讨论】:

    猜你喜欢
    • 2022-12-14
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 2021-01-18
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    相关资源
    最近更新 更多