blob: 03ebfadbd4d1478d20ff5b606131854fb9190707 [file] [log] [blame] [edit]
#!/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