PBS扭矩电子邮件变量

PBS torque email variable

以下是我使用的 pbs 示例:

#!/bin/bash
#PBS -S /bin/bash
#PBS -N myJob
#PBS -l nodes=1:ppn=4
#PBS -l walltime=50:00:00
#PBS -q route

export MYMAIL=mytestmail@testmail.com
#PBS -m ae
#PBS -M mytestmail@testmail.com

./script1.sh

echo $PBS_JOBID $PBS_O_WORKDIR | mail -s "$PBS_JOBNAME script1 done" $MYMAIL

./script2.sh

echo $PBS_JOBID $PBS_O_WORKDIR | mail -s "$PBS_JOBNAME script2 done" $MYMAIL

./script3.sh

echo $PBS_JOBID $PBS_O_WORKDIR | mail -s "$PBS_JOBNAME script3 done" $MYMAIL

./script4.sh

如您所见,我希望在此过程中收到通知。 我的问题是用户必须写两次他们的电子邮件地址。

我试过了:

#PBS -M  $MYMAIL

但它不起作用。

我还试图找到一个包含

期间存储的电子邮件的 pbs 变量
#PBS -M mytestmail@testmail.com

但什么都没有...

一个想法?

您正在通过不同的方法发送不同的电子邮件。使用#PBS -M 行,您在头节点上告诉 pbs_server 应该将有关作业的电子邮件发送到哪里,并使用“|mail”从节点 运行 作业向用户发送邮件.

似乎 Torque 没有设置包含 -M 内容的环境变量,因此我们无法将其传递给邮件。

我有两个想法给你。第一个是尝试从 qstat 捕获 Mail_Users 行并解析它。

qstat -f [job number] | grep Mail_Users

第二个是为每个用户创建一个 .forward 文件,因为默认情况下 Torque 会向本地用户帐户发送电子邮件,删除 #PBS -M 行。您仍然需要将电子邮件或帐户名传递给邮件,但您可以通过以下方式逃脱:

mail -s "$PBS_JOBNAME script1 done" `whoami`