You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SBATCH输出文件中使用作业名称作为变量?

Slurm/SBATCH 可用变量及作业名称替代语法

当然有啦!你要找的作业名称对应的替代语法是%x,直接把脚本里的%j替换成%x,就能用作业名称来命名输出文件了。给你改个示例脚本参考:

#!/bin/bash
# 此处省略其他sbatch命令...
#SBATCH -o slurm-%x.out-%N  # 标准输出文件名,使用作业名称(%x)和首个节点(%N)
#SBATCH -e slurm-%x.err-%N  # 标准错误文件名,使用作业名称和首个节点值

我整理了一些常用的Slurm变量和输出文件名转义符,方便你日常使用:

输出文件名常用转义符(在-o/-e参数中使用)

  • %j: 作业ID(你已经在用的)
  • %x: 作业名称(就是你要找的)
  • %N: 执行作业的首个节点名称
  • %u: 提交作业的用户名
  • %t: 任务ID(针对数组作业)
  • %A: 数组作业的主ID
  • %p: 作业的进程ID
  • %L: 作业的时间限制(格式为HH:MM:SS)

脚本内可直接调用的SBATCH环境变量

作业运行时Slurm会自动设置这些环境变量,你能在脚本里直接引用:

  • $SLURM_JOB_ID: 作业ID
  • $SLURM_JOB_NAME: 作业名称
  • $SLURM_JOB_NODELIST: 分配给作业的节点列表
  • $SLURM_SUBMIT_DIR: 提交作业的目录路径
  • $SLURM_NTASKS: 作业申请的任务总数
  • $SLURM_CPUS_PER_TASK: 每个任务分配的CPU核心数

如果想查看完整的变量列表,直接在集群上运行man sbatch,翻到「OUTPUT FILE NAME ESCAPES」和「ENVIRONMENT VARIABLES」章节就能看到官方支持的所有变量,内容非常详细。

内容的提问来源于stack exchange,提问作者ctesta01

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:21:54