LSF Job submit - stdout & stderr redirection



我已通过以下命令提交了作业:

bsub -e error.log -o output.log ./myScript.sh

我有一个问题:为什么输出和错误日志仅在作业结束后可用?

谢谢

LSF 不会将输出蒸回提交主机。如果提交主机和执行主机具有共享文件系统,并且JOB_SPOOL_DIR位于该共享文件系统中(默认情况下,假脱机目录为 $HOME/.lsbatch(,则应在此处看到 stdout 和 stderr。作业完成后,那里的文件将复制回 bsub 指定的位置。

检查bparams -a | grep JOB_SPOOL_DIR以查看管理员是否更改了线轴目录的位置。 无论是否使用 -o/-e 选项,当作业运行时,其 stdout/err 都将在作业的假脱机目录中捕获。 作业完成后,stdout/stderr 将复制到 bsub -o/-e 指定的文件名。 文件在后台打印中的位置是$JOB_SPOOL_DIR/<jobsubmittime>.<jobid>.out$JOB_SPOOL_DIR/<jobsubmittime>.<jobid>.err

[user1@beta ~]$ cat log.sh 
LINE=1
while :
do
  echo "line $LINE"
  LINE=$((LINE+1))
  sleep 1
done
[user1@beta ~]$ bsub -o output.log -e error.log ./log.sh
Job <930> is submitted to default queue <normal>.
[user1@beta ~]$ tail -f .lsbatch/*.930.out
line 1
line 2
line 3
...

根据 LSF 文档,行为是可配置的:

如果未设置 LSB_STDOUT_DIRECT 并且您使用 bsub -o 选项,则作业的标准输出将写入临时文件,并在作业完成后复制到指定的文件中。

最新更新