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

时间:2020-09-15 01:36:56

标签: slurm

我有一个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用于发送电子邮件给用户的电子邮件地址?在我的用例中,我想捕获该电子邮件地址并将其用于随后产生的作业中。

1 个答案:

答案 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`