我想使用 Platform LSF 提交一份工作,并将输出放在一个文件 ( bsub -o
) 中,但最后没有工作报告。使用bsub -N
从文件中删除作业报告,而是通过电子邮件发送报告。有没有办法完全压制它?
5 回答
如http://www-01.ibm.com/support/knowledgecenter/SSETD4_9.1.2/lsf_admin/email_notification.dita中所述,您可以在提交作业时设置环境变量 LSB_JOB_REPORT_MAIL=N 以禁用电子邮件通知,例如:
LSB_JOB_REPORT_MAIL=N bsub -N -o command.stdout command options
如何将命令的输出重定向到文件并将报告发送到 /dev/null:
bsub -o /dev/null "ls > job.\$LSB_JOBID.out"
我设法通过使用 bsub 建议的 -N 开关来完成这项工作,并通过使用环境变量来抑制电子邮件传递:
对于 (t)csh 用户:
setenv LSB_JOB_REPORT_MAIL N
对于 Bourne shell 及其变体:
export LSB_JOB_REPORT_MAIL=N
这有点令人费解,但它完成了工作。
我可以想到两种方法来做到这一点。一种是有点“大锤”的方法,但也许对你有用。
首先,您可以设置一些与 /dev/null 等效的电子邮件别名,然后使用 bsub 的 -u 选项将电子邮件报告发送给该用户。
其次(大锤),您可以在 LSF 配置中设置 LSB_MAILPROG 以指向一个 sendmail 包装脚本,该脚本可以 a) 解析报告并根据某些文本匹配将其分箱,或者 b) 将所有电子邮件分箱。
否则,您会被 -o 指示的文件中的标头卡住。
在 bsub 命令行上使用“-o”、“-e”、“-N”和“-u /dev/null”的组合来完全抑制作业报告和电子邮件,例如:
$ bsub -N -u /dev/null -o command.stdout -e command.stderr command options
不幸的是,这也会完全禁用任何关于作业失败的报告。