Celebi / 使用指南

命令参考

Celebi 有三个入口:celebi 进入可持续切换对象的交互式 shell, celebi-cli COMMAND 执行适合脚本调用的单次操作,celebi-git COMMAND 专门提供 Git 集成。下表默认使用 shell 与 celebi-cli 共用的正式命令名; 仅适用于 shell 的命令会特别注明。方括号 [ ] 表示可选参数。

在 celebi 内,裸 helpme 会根据当前对象给出建议。以下三种写法显示同一份详细帮助:

help status
helpme status
status --help

在 shell 外使用 celebi-cli COMMAND --help。旧名称仍可兼容调用,并集中列在 celebi-cli --help 的 Compatibility aliases 区域。

项目与导航

命令作用与用法
list-projects列出所有已注册的项目
use-project <name>选择下次 celebi 打开的项目
register-project <name> [path]注册已有项目
remove-project <name>只删除注册信息,不删除项目文件
project-path显示当前项目路径
project-uuid显示当前项目的 UUID
cd <path>在 celebi 内切换目录/对象(仅 shell)
cd-project <name>在 celebi 内切换项目(仅 shell)
tree显示目录树结构
mkdir <path>新建目录对象
ls列出当前对象:README、子对象与状态标签(支持 ls --status 等选项)
short-ls当前对象的简短列表

创建对象

命令作用与用法
create-algorithm <name>创建算法对象(可复用的计算模板)
create-task <name>创建任务对象(算法的具体实例)
create-multi-tasks <base> <stop> [--start <n>]按 start <= n < stop 批量创建编号任务
create-data <name>创建数据对象
create-multi-data <path>为路径下每个直接子目录创建并上传一个数据对象
create-data-list <name>创建数据列表对象
create-lhcb-ap-list <path>创建 LHCb AP 数据列表任务(动态生成 dataList.txt,需自行填写 AP 查询参数)
add-apd-token <token>为当前 LHCb AP 数据列表任务添加 APD token(存入 .celebi/config.local.json)

连接对象与参数

命令作用与用法
add-algorithm <path>为当前任务关联算法(任务里将以 code/ 形式可见)
add-input <path> <alias>为当前任务/算法添加输入,用别名引用(别名系统让重组更安全)
add-multi-inputs <path-base> <alias-base> <stop> [--start <n>]按半开区间批量添加编号输入和别名
remove-input <alias>移除输入
remove-multi-inputs <alias-base> <stop> [--start <n>]按半开区间批量移除编号别名
set-parameter <name> <value>设置任务参数,对应算法命令里的 ${name}
add-parameter-subtask <dirname> <name> <value>给目录内的指定子任务添加参数
remove-parameter <name>移除参数
predecessors列出当前对象的前驱
successors列出当前对象的后继

配置与编辑

命令作用与用法
config用默认编辑器打开当前对象的 celebi.yaml(不存在则创建模板)
set-environment <env>设置执行环境:脚本型用 script,否则用 Docker 镜像名
set-memory-limit <limit>设置内存上限,如 256Mi
set-descriptor <text>设置对象的描述(descriptor)
add-source <path>添加外部源文件/目录到当前对象(参与依赖追踪)
comment <text>给对象添加评论
edit-readme编辑当前对象的 README
edit <file>编辑脚本文件
watermark显示对象水印(创建元数据、版本与签名信息)
history显示对象的执行与修改历史
changes显示对象最近的改动

印象(Impression)

命令作用与用法
impress [names...]为当前对象(或指定的子对象)创建 impression —— 封存当前状态
impression获取当前对象的 impression
view查看当前任务的 impressions
view-url [impression]获取 impression URL
search-impression <prefix>按 UUID 前缀搜索 impression
trace追溯生成 impression 的任务/算法(沿依赖图回溯)
draw-dag [output] [--exclude-algorithms]用 Graphviz 绘制依赖 DAG
bookkeep项目级 impression 整理(存储、索引与清理)
bookkeeping-url获取 bookkeeping URL
open-bookkeeping打开 bookkeeping 页面
homekeep清理 runner 上的工作流
clean-impressions清理 impressions(开发者工具)
purge-impressions清除当前对象的 impression
purge-old-impressions清除旧 impression 数据,只保留近期/关键快照
doctor系统诊断,检查并修复 repository 的完整性

执行

命令作用与用法
submit [--runner <name>]提交当前任务或容器对象执行
status [--wait]显示状态并可轮询至终态,详见任务与算法的状态
cancel取消当前任务或目录中正在运行的 impressions
log [index] [--follow]显示用户命令日志,并可持续跟随新输出
collect [all|plots|data|logs|<glob>|<name>]收集任务结果;默认收集 plots + logs
engine-logs从 DITE 获取工作流引擎日志
collect-outputs / collect-logs只收集输出或日志
check-results <runner>在 SSH runner 上挂载缓存结果以供检查
auto-download on|off开启或关闭结果自动下载
cache-on-runner on|off开启或关闭 runner 端结果缓存
test在 Docker 容器中执行测试工作流
workaround [--reference <alg>] [--skip-input <task>]本地模拟运行环境调试任务,所见即所跑

DITE 与服务器

命令作用与用法
dite显示 DITE 连接信息
set-dite <url>设置 DITE(Yuki)服务器地址;不带参数则显示当前配置
add-host <name> <url>注册主机,如 add-host localhost http://127.0.0.1:8080
hosts列出所有主机及状态
register-booking-server [url] [token]向 Yuki 注册 REANA 服务器与访问 token(缺省读环境变量)
booking-server查看已注册的 REANA 服务器 URL 与状态
book-reana把当前项目打包上传到 REANA(经 Yuki,流式显示进度)

Runner 管理

命令作用与用法
runners列出所有可用 runner 及完整配置
register-runner <name> <url> <secret>向 DITE 注册新 runner
request-runner <name>为当前任务指定执行 runner
test-runner <name>探测 runner 能力(snakemake/conda/workdir)
install-environment <runner> <name> [--file <yaml>]在 SSH/IHEP runner 上安装或更新项目专属 Conda 环境;默认读取 .celebi-env/<name>.yaml
runner-environments <name>列出当前项目在 SSH/IHEP runner 上的环境
remove-runner <name>移除 runner
update-runner <name> ...更新 runner 设置(url、token、backend_type、Kerberos、EOS 挂载点等)

项目环境安装在 <remote_workdir>/environments/<project_uuid>/<environment_name>,因此不同项目即使 使用相同环境名也不会共享路径。再次运行 install-environment 会通过 conda env update --prune 更新环境。YAML 中的 name 字段不会决定安装路径,也不 记录环境配置哈希:这里把环境视为可信、可变的 runner 状态。Yuki 中显式配置的 conda_env_map 仍作为兼容方式保留。

数据管理

命令作用与用法
upload-data <path>上传本地路径到 DITE
register-ssh-data把 ssh runner 上的数据注册进 Yuki 托管存储(计算 MD5,后台任务复制,显示字节进度条)
verify-data校验当前数据任务:重算 MD5 与注册 UUID 对比
attach-data <uuid> [path]把 Yuki impression 附加到 rawdata 任务
import <path>导入外部文件到当前对象(支持 /* 通配导入整个目录)
export <glob>把匹配文件导出到 project/export/
remove-file <file>删除对象内的文件
move-file <src> <dst>移动对象内的文件
display <file>查看对象内的文件
cat <file>显示文件内容
imgcat <file>在终端内联显示图片(来自 DITE)

文件与对象操作

命令作用与用法
cp <src> <dst>复制对象(保留依赖关系与元数据,连接自动接好)
mv <src> <dst>移动/重命名对象(关系与元数据不变,可放心重组)
rm <path>删除对象(会校验以保护项目完整性)

系统与工具

命令作用与用法
system-shell进入系统 bash;exit 或 Ctrl-D 返回 Celebi shell
danger-call <cmd>直接执行系统命令(慎用)
EOF退出 Celebi shell(同 Ctrl-D)
help列出所有命令
helpme获取当前对象的帮助