首页/数据/数据工程与 ETL 速查/Airflow CLI 常用命令

Airflow CLI 常用命令

airflow 命令行是排障与操作入口:列 DAG、看任务状态、单任务本地试跑、手动回填、清理历史记录;尽量用 CLI 做可复现操作而不是只在界面点按钮。

CLI 用来做什么

airflow 命令行是排障与操作的主要入口:列出 DAG、查看某次运行里各任务的状态、在本地单独试跑某个任务、按区间回填、清理历史记录。相比在网页上点按钮,CLI 的操作可复制、可留痕,出问题时也更容易复现;值班手册里应该写命令而不是「打开界面点这里」。

基本信息

看 DAGairflow dags list / dags list-import-errors
看运行airflow tasks states-for-dag-run
本地试跑airflow tasks test <dag> <task> <日期>
回填airflow dags backfill -s -e
数据库维护airflow db 相关子命令
版本差异不同大版本的命令分组有调整,执行前用 --help 核对

排障四连

排障四连
airflow dags list | grep daily_orders
airflow dags list-import-errors
airflow tasks test daily_orders extract 2026-10-11
airflow tasks states-for-dag-run daily_orders manual__2026-10-11T00:00:00+00:00

典型使用场景

  • DAG 没出现:用 list-import-errors 看解析失败原因
  • 任务失败定位:查该次运行里每个任务的状态与耗时
  • 本地验证逻辑:tasks test 单独跑一个任务确认参数与路径
  • 受控补数:按区间回填并在命令里限制并发
  • 清理与维护:删除过期运行记录、重建元数据表结构
  • 批量操作:按 DAG 或标签批量暂停与恢复,发版窗口前统一停调度
  • 环境核对:确认 CLI 连接的是哪套元数据库,避免在生产上误操作

常用命令读法

命令作用说明
dags list列出所有可调度 DAG只显示被成功解析的
dags list-import-errors列出解析失败的 DAG语法与依赖问题首查
tasks test本地执行单个任务不写调度状态
tasks states-for-dag-run查看某次运行的任务状态定位卡在哪个任务
dags backfill按区间回填需配合并发限制
tasks test 在本地直接执行任务函数、不写调度状态,用来验证逻辑;正式运行仍由 scheduler 发起。
CLI 需要能读到与调度器相同的配置与元数据库,通常在有 Airflow 环境变量的机器上执行;在错误的机器上跑会出现「看不到任何 DAG」这种迷惑现象。
删除运行记录、清理历史之类的命令会直接改元数据库,执行前先确认连接的库是测试还是生产,必要时先做备份。

易错点

  • tasks test 不走执行器与队列,测不出 worker 环境依赖问题
  • 排查 DAG 在界面里不见了的问题时,list-import-errors 是常用入口
  • 在配置不一致的机器上执行 CLI,看到的 DAG 列表与界面完全不同
  • 回填命令不带并发限制,一次放开大量历史周期
  • 把 CLI 操作当一次性动作不留记录,事后无法复盘做过什么

数据来源与参考

  • Apache Airflow 官方文档:Command Line Interface
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌