我希望能够将我的 slurm 批处理脚本附加到我的错误文件中。我使用
sbatch -J "my_run_name" runscript.slurm
在 HPC 上提交这些内容。 runscript.slurm
的内容总结如下。
#!/bin/bash
#SBATCH --job-name=%x
#SBATCH --output=%x.o-%j
#SBATCH --error=%x.e-%j
## Other directives...
error_file="$SLURM_SUBMIT_DIR/$SLURM_JOB_NAME.e-$SLURM_JOB_ID"
main="/path/to/main/file"
# set parameters, then call main function
$main --opt1 $opt1 --opt2 $opt2
# Last line of script
scontrol write batch_script $SLURM_JOB_ID $error_file
不幸的是,这会覆盖我在长期运行的计算(大量进度日志语句)中在
error_file
中积累的所有其他内容
我想知道是否可以将追加
runscript.slurm
到runscript.slurm
,而不是覆盖
error_file
中的所有现有内容。
在一个相关点上 - 是否可以将
error_file
的内容转储到 bash 变量中,然后我可以将其传递给我的 runscript.slurm
函数(这样我可以将
main
保存为计算结果中的附加字段) 。希望这个问题有意义。尝试使用
runscript.slurm
您可以获取其输出并以追加模式将其重定向到感兴趣的文件,而不是向 SLURM 提供存储脚本的文件。