我有一个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用于发送电子邮件给用户的电子邮件地址?在我的用例中,我想捕获该电子邮件地址并将其用于随后产生的作业中。
答案 0 :(得分:2)
您总是可以尝试从工作脚本中复制它:
MAIL=`grep -m 1 "mail-user=" $0 | cut -d = -f2`
-m 1
在第一个匹配项处停止grep,$0
解析为脚本的路径。
我认为它甚至是我的首选版本,因为它不需要与slurmctld进行额外的通信。对于较新的版本(20.02+),您还可以解析scontrol
的输出:
MAIL=`scontrol show job ${SLURM_JOB_ID} | grep MailUser | tr -s ' ' | cut -d ' ' -f 2 | cut -d = -f 2`