捕获 SLURM 批处理脚本中使用的电子邮件地址

Capturing the email address used in a SLURM batch script

我有一个 SLURM (v19.05.6) 批处理脚本:

test.sh :

#!/bin/bash
#SBATCH --mail-user=First.Last@domain.com
#SBATCH --mail-type=ALL
env

在我的脚本中,我希望能够获取 SLURM 用于向用户发送邮件的电子邮件地址(即 First.Last@domain.com)。我打印了环境(即 env),它没有设置为环境变量。查看 sacct 的手册页也不包含电子邮件地址字段。

问题 :

如何获取 SLURM 用于向用户发送电子邮件的电子邮件地址?在我的用例中,我想捕获该电子邮件地址并在随后生成的作业中使用它。

您总是可以尝试从作业脚本中获取它:

MAIL=`grep -m 1 "mail-user=" [=10=] | cut -d = -f2`

-m 1 在第一次匹配时停止 grep,[=13=] 解析为脚本的路径。

我认为它甚至是我的首选版本,因为它不需要与 slurmctld 进行额外通信。对于较新的版本 (20.02+),您还可以解析 scontrol:

的输出
MAIL=`scontrol show job ${SLURM_JOB_ID} | grep MailUser |  tr -s ' ' | cut -d ' ' -f 2 | cut -d = -f 2`