#!/bin/bash # Make strings lower case for nice email formatting SLURM_MAIL_TYPE=${SLURM_JOB_MAIL_TYPE,,} SLURM_JOB_STATE=${SLURM_JOB_STATE,,} MAIL_BODY=$(mktemp) function showParamIfSet { name="$1" value="$2" if [ ${#value} -gt 0 ] then echo " $name:'$value'" >> $MAIL_BODY fi } echo "This is a notification email about job $SLURM_JOB_ID($SLURM_JOB_NAME) on cluster:$SLURM_CLUSTER_NAME, the job has $SLURM_MAIL_TYPE." >> $MAIL_BODY case $SLURM_MAIL_TYPE in began) echo "Job was queued for $SLURM_JOB_QUEUED_TIME" >> $MAIL_BODY ;; ended|requeued|failed) echo "Job was running for $SLURM_JOB_RUN_TIME and returned exit code: $SLURM_JOB_EXIT_CODE" >> $MAIL_BODY ;; esac echo "Job details:" >> $MAIL_BODY showParamIfSet "Array JobId" "$SLURM_ARRAY_JOB_ID" showParamIfSet "Array Task" "$SLURM_ARRAY_TASK" showParamIfSet "Array TaskId" "$SLURM_ARRAY_TASK_ID" showParamIfSet "Slurm Cluster Name" "$SLURM_CLUSTER_NAME" showParamIfSet "HetJobId" "$SLURM_HET_JOB_ID" #SLURM_PACK_JOB_ID is a synonym showParamIfSet "HetJob List" "$SLURM_HET_JOB_NODELIST" #SLURM_PACK_NODELIST is a synonym showParamIfSet "HetJob Offset" "$SLURM_HET_JOB_OFFSET" #SLURM_PACK_JOB_OFFSET is a synonym showParamIfSet "Job Account" "$SLURM_JOB_ACCOUNT" showParamIfSet "Job Requested Features" "$SLURM_JOB_CONSTRAINTS" showParamIfSet "Slurm derived exit code" "$SLURM_JOB_DERIVED_EC" showParamIfSet "Slurm job exit code" "$SLURM_JOB_EXIT_CODE" showParamIfSet "Job gid" "$SLURM_JOB_GID" showParamIfSet "Job group name" "$SLURM_JOB_GROUP" showParamIfSet "JobId" "$SLURM_JOB_ID" showParamIfSet "Job requested licenses" "$SLURM_JOB_LICENSES" showParamIfSet "Job name" "$SLURM_JOB_NAME" showParamIfSet "Job node List" "$SLURM_JOB_NODELIST" showParamIfSet "Job partition" "$SLURM_JOB_PARTITION" showParamIfSet "Job queued time" "$SLURM_JOB_QUEUED_TIME" showParamIfSet "Job run time" "$SLURM_JOB_RUN_TIME" showParamIfSet "Job stage-out time" "$SLURM_JOB_STAGE_OUT_TIME" showParamIfSet "Job state" "$SLURM_JOB_STATE" showParamIfSet "Job stderr" "$SLURM_JOB_STDERR" showParamIfSet "Job stdin" "$SLURM_JOB_STDIN" showParamIfSet "Job stdout" "$SLURM_JOB_STDOUT" showParamIfSet "Job uid" "$SLURM_JOB_UID" showParamIfSet "Job user name" "$SLURM_JOB_USER" showParamIfSet "Job wckey" "$SLURM_JOB_WCKEY" showParamIfSet "Job working directory" "$SLURM_JOB_WORK_DIR" showParamIfSet "Mail type" "$SLURM_MAIL_TYPE" /usr/bin/mail "$@" < $MAIL_BODY rm $MAIL_BODY