Capture de l'adresse e-mail utilisée dans un script batch SLURM
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
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`