Python 如何更改slurum上的工作目录
我在一个slurm集群上工作,在那里我运行了两个作业。我很难在每个目录中逐个检查作业 我可以设法检查作业正在使用哪个目录运行Python 如何更改slurum上的工作目录,python,cluster-computing,slurm,cd,pwd,Python,Cluster Computing,Slurm,Cd,Pwd,我在一个slurm集群上工作,在那里我运行了两个作业。我很难在每个目录中逐个检查作业 我可以设法检查作业正在使用哪个目录运行 scontrol show job JOB_ID 此命令提供了输出上的各种行。下面列出了其中的几个 OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null) Command=/home/astha/vt-st/scf-test/303030/49/qsub.job WorkDir=/hom
scontrol show job JOB_ID
此命令提供了输出上的各种行。下面列出了其中的几个
OverSubscribe=OK Contiguous=0 Licenses=(null) Network=(null)
Command=/home/astha/vt-st/scf-test/303030/49/qsub.job
WorkDir=/home/astha/vt-st/scf-test/303030/49
StdErr=/home/astha/vt-st/scf-test/303030/49/qsub.job.e1205
StdIn=/dev/null
StdOut=/home/astha/vt-st/scf-test/303030/49/qsub.job.o1205
Power=
MailUser=(null) MailType=NONE
其中,上面输出的WorkDir(这是一个示例,每个作业的路径都不同)是我要切换的目录
然后
但是输入这么长的命令让我的手指哭了
我曾经尝试过制作一个小的python脚本来打印scontrolshow作业
# Try block
try:
# Take a number
print("scontrol show job")
# Exception block
except (ValueError):
# Print error message
print("Enter a numeric value")
但是我应该如何改进它,以便它接受我给定的输入编号,然后从输出中grep WorkDir并更改目录
非常感谢。您将无法让python脚本轻松更改当前的工作目录,只需在Bash中这样做:
$ cdjob() { cd $(squeue -h -o%Z -j "$1") ; }
这将创建一个名为cdjob
的Bash函数,该函数接受作业ID作为参数。您可以使用检查它是否正确创建
$ type cdjob
cdjob is a function
cdjob ()
{
cd $(squeue -h -o%Z -j "$1")
}
运行上述命令后(您可以将其放入启动脚本.bashrc
或.bash\u profile
中,如果您希望它在注销后继续运行),您将能够执行以下操作
$ cdjob 22078365
例如,这会将您带到job
22078365
的工作目录。您可以看到,我没有试图解析scoontrol
的输出,而是使用squeue
的输出格式选项来简单地输出所需的信息。谢谢您,先生,这部分对我有效。它会打印路径(例如“cd/path/of/cd/directory/”,但不会自动更改。哼,是的,对不起,我在那里留下了一个回音进行测试。我更新了答案
$ cdjob 22078365