我通过以下命令提交了我的工作:
bsub -e error.log -o output.log ./myScript.sh
我有一个问题:为什么只有在作业结束后输出和错误日志才可用?
由于
答案 0 :(得分:1)
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
...
答案 1 :(得分:0)
根据LSF documentation,行为是可配置的:
如果未设置LSB_STDOUT_DIRECT且使用bsub -o选项,则作业的标准输出将写入临时文件并复制到作业完成后指定的文件中。