Capture de l'adresse e-mail utilisée dans un script batch SLURM

Sep 14 2020

J'ai un script batch SLURM (v19.05.6):

test.sh :

#!/bin/bash
#SBATCH [email protected]
#SBATCH --mail-type=ALL
env

Dans mon script, j'aimerais pouvoir obtenir l'adresse e-mail (c'est-à-dire [email protected]) que SLURM utilise pour envoyer un courrier à l'utilisateur. J'ai imprimé l'environnement (c'est-à-dire env) et il n'est pas défini comme une variable environnementale. L'examen de la page de manuel pour sacctne contient pas non plus de champ d'adresse e-mail.

QUESTION :

Comment obtenir l'adresse e-mail utilisée par SLURM pour envoyer un e-mail aux utilisateurs? Dans mon cas d'utilisation, j'aimerais capturer cette adresse e-mail et l'utiliser dans des tâches générées par la suite.

Réponses

2 MarcusBoden Sep 15 2020 at 08:59

Vous pouvez toujours essayer de le greper à partir du script de travail:

MAIL=`grep -m 1 "mail-user=" $0 | cut -d = -f2`

le -m 1grep arrête à la première correspondance et $0résout le chemin du script.

Je pense que c'est même ma version préférée, car elle n'a pas besoin de communication supplémentaire avec le slurmctld. Pour les versions plus récentes (20.02+), vous pouvez également analyser la sortie de scontrol:

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