在 SLURM 上运行时发送电子邮件的脚本不起作用

问题描述 投票:0回答:1

我有一个 bash 脚本,它执行各种每周数据收集任务并生成报告,然后将其回显到要发送的电子邮件中。我已在 Linux 终端中手动运行该脚本,并确认我可以从中接收电子邮件。该脚本的格式如下:

#!/bin/bash

### Code to perform data collection and generate an output text file ###

(
echo "Email greeting..."
echo "${OUTPUT}"
echo "More email stuff..."
) | mail -s "subject" "email@address"

echo "Report from ${OUTPUT} sent."

一些数据收集任务非常消耗资源,因此我编写了一个批处理作业提交脚本,将作业提交到 HPC 计算能力的队列中,如下所示:

#!/bin/bash

#SBATCH --job-name=DATA_COLLECTION_REPORT
#SBATCH --ntasks=1
#SBATCH --time=06:00:00
#SBATCH --mem-per-cpu=250G
#SBATCH --partition=cpu

bash /PATH/TO/DATA_COLLECTION_SCRIPT.sh

然后为了自动化提交,我只是使用 crontab 来安排作业。为了说明这一点,当我运行

crontab -l
时,终端返回以下内容:

0 1 * * 1 sbatch /PATH/TO/SLURM_DATA_COLLECTION_JOB_SCRIPT.sh

当我从 cron 守护程序收到电子邮件时,我可以确认 crontab 作业正在执行。此外,SLURM 运行并完成我的工作,因为我有一个 SLURM 输出文件,其内容如下:

Report from output/file/path/OUTPUT_FILE.txt sent.

但是我从未收到过电子邮件。

我还尝试使用带有虚拟报告的 crontab 运行脚本,以跳过资源密集型数据收集阶段。我手动创建 OUTPUT_FILE.txt 并安装 cronjob 来发送电子邮件。这工作正常,所以我认为 SLURM 运行脚本的电子邮件部分存在问题。

linux slurm hpc sbatch
1个回答
0
投票

您可以通过添加特定节点名称

--nodelist=one_of_your_node_name_in_the_cpu_partition
并删除
--time
或将其减少到XX分钟来测试slurm部分

© www.soinside.com 2019 - 2024. All rights reserved.