如何更改 slurum 上的工作目录
How to change working directory on slurum
我在一个 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=/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(这是一个例子,每个作业的路径都会不同)是我要切换到的目录。
然后
cd /home/astha/vt-st/scf-test/303030/49
但是输入这么长的命令让我的手指都哭了。
我已经尝试制作一个小的 python 脚本来打印 scontrol show job
# 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 "") ; }
这将创建一个名为 cdjob
的 Bash 函数,它接受作业 ID 作为参数。您可以使用
检查它是否已正确创建
$ type cdjob
cdjob is a function
cdjob ()
{
cd $(squeue -h -o%Z -j "")
}
在你 运行 上面的命令之后(你可以把它放在你的启动脚本 .bashrc
或 .bash_profile
如果你想让它在注销后继续存在)你将能够做
$ cdjob 22078365
例如,这会将您带到作业 22078365
的工作目录。你看,我没有尝试解析 scontrol
的输出,而是使用 squeue
的输出格式选项来简单地输出所需的信息。
我在一个 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=/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(这是一个例子,每个作业的路径都会不同)是我要切换到的目录。
然后
cd /home/astha/vt-st/scf-test/303030/49
但是输入这么长的命令让我的手指都哭了。
我已经尝试制作一个小的 python 脚本来打印 scontrol show job
# 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 "") ; }
这将创建一个名为 cdjob
的 Bash 函数,它接受作业 ID 作为参数。您可以使用
$ type cdjob
cdjob is a function
cdjob ()
{
cd $(squeue -h -o%Z -j "")
}
在你 运行 上面的命令之后(你可以把它放在你的启动脚本 .bashrc
或 .bash_profile
如果你想让它在注销后继续存在)你将能够做
$ cdjob 22078365
例如,这会将您带到作业 22078365
的工作目录。你看,我没有尝试解析 scontrol
的输出,而是使用 squeue
的输出格式选项来简单地输出所需的信息。