【n8n教程】:n8n CLI 命令行工具

在日常的工作流自动化中,我们经常需要快速地启动工作流、导出备份或批量管理配置。虽然 n8n 编辑器提供了友好的图形界面,但 n8n 命令行界面(CLI) 提供了更强大、更灵活的管理方式。无论你是想通过命令行执行工作流,还是需要进行批量导出导入操作,n8n CLI 都能帮助你事半功倍。

本教程将带你快速上手 n8n CLI,从基础概念到实战操作,让你成为命令行工作流管理的高手。


第一部分:什么是 n8n CLI?

CLI 的核心价值

n8n CLI 是一个强大的命令行工具,允许你:

支持的环境

n8n CLI 可在以下两种环境中使用:

1. npm 安装

如果你通过 npm 安装了 n8n,命令可直接使用:


    
    
    
  n8n <command>

2. Docker 容器

如果你使用 Docker 运行 n8n,需要这样执行命令:


    
    
    
  docker exec -u node -it <n8n-container-name> n8n <command>

例如


    
    
    
  docker exec -u node -it n8n_container n8n workflow:list

第二部分:关键 CLI 命令详解

1. 工作流执行命令

启动单个工作流

执行保存的工作流,通过其 ID 指定:


    
    
    
  n8n execute --id <WORKFLOW_ID>

实例


    
    
    
  n8n execute --id NGgtX67xWcwx2a3I

应用场景


2. 工作流状态管理

激活工作流


    
    
    
  n8n update:workflow --id=<ID> --active=true

停用工作流


    
    
    
  n8n update:workflow --id=<ID> --active=false

批量管理工作流状态

停用所有工作流:


    
    
    
  n8n update:workflow --all --active=false

激活所有工作流:


    
    
    
  n8n update:workflow --all --active=true

重要提示:这些命令需要重启 n8n 才能生效!

应用场景


3. 工作流导出命令

导出所有工作流


    
    
    
  n8n export:workflow --all

输出到标准输出(终端显示)。

导出特定工作流


    
    
    
  n8n export:workflow --id=<ID> --output=workflow.json

导出所有工作流到特定目录


    
    
    
  n8n export:workflow --all --output=backups/latest/file.json

使用备份标志导出(推荐用于备份)


    
    
    
  n8n export:workflow --backup --output=backups/latest/

此命令会:

命令标志说明

标志说明
--all导出所有工作流
--id导出指定 ID 的工作流
--output指定输出文件或目录
--pretty格式化输出,更易阅读
--separate每个工作流单独保存为文件
--backup备份模式,相当于 --all --pretty --separate

4. 凭据导出命令

导出所有凭据


    
    
    
  n8n export:credentials --all

导出特定凭据


    
    
    
  n8n export:credentials --id=<ID> --output=creds.json

导出为纯文本格式(用于迁移)


    
    
    
  n8n export:credentials --all --decrypted --output=creds_plain.json

⚠️ 安全警告:导出的纯文本文件包含敏感信息,请妥善保管!


5. 工作流和凭据导入命令

导入单个工作流


    
    
    
  n8n import:workflow --input=workflow.json

导入多个工作流(从目录)


    
    
    
  n8n import:workflow --separate --input=backups/latest/

导入凭据


    
    
    
  n8n import:credentials --input=credentials.json

导入到特定项目


    
    
    
  n8n import:workflow --input=workflow.json --projectId=<PROJECT_ID>

重要说明


6. 实体导出(完整数据库备份)

导出整个数据库的所有实体(包括工作流历史):


    
    
    
  n8n export:entities --outputDir=./db_backup

包含执行历史的大型备份:


    
    
    
  n8n export:entities --outputDir=./db_backup --includeExecutionHistoryDataTables

然后可以导入到其他数据库:


    
    
    
  n8n import:entities --inputDir=./db_backup

应用场景


7. 用户管理命令

重置用户管理系统


    
    
    
  n8n user-management:reset

此命令会移除所有用户账户,恢复到初始状态。

应用场景

禁用用户的 MFA(多因素认证)


    
    
    
  n8n mfa:disable --email=user@example.com

用户可重新登录后重新设置 MFA。

重置 LDAP 设置


    
    
    
  n8n ldap:reset

8. 许可证管理命令

清除许可证


    
    
    
  n8n license:clear

重置 n8n 为默认功能。

查看许可证信息


    
    
    
  n8n license:info

显示当前许可证状态和信息。


9. 安全审计命令

检测 n8n 实例中的常见安全问题:


    
    
    
  n8n audit

此命令会扫描并报告:


第三部分:实战案例 - 工作流备份和恢复系统

现在让我们通过一个完整的案例,学习如何使用 CLI 命令构建一个自动备份系统。

场景

你需要:

  1. 1. 定期备份所有工作流
  2. 2. 备份所有凭据
  3. 3. 能够快速恢复
n8n 工作流备份和恢复流程图
n8n 工作流备份和恢复流程图

实现步骤

第一步:创建备份脚本

创建一个 backup.sh 文件:


    
    
    
  #!/bin/bash

# 设置备份目录

BACKUP_DIR="./n8n_backups"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
BACKUP_PATH="$BACKUP_DIR/backup_$TIMESTAMP"

# 创建备份目录

mkdir
 -p "$BACKUP_PATH"

echo
 "开始备份 n8n 工作流和凭据..."

# 导出所有工作流

echo
 "导出工作流..."
n8n export:workflow --backup --output="$BACKUP_PATH/workflows/"

# 导出所有凭据

echo
 "导出凭据..."
n8n export:credentials --all --output="$BACKUP_PATH/credentials.json"

# 创建备份清单

echo
 "备份时间: $TIMESTAMP" > "$BACKUP_PATH/backup_info.txt"
echo
 "工作流数: $(ls -1 $BACKUP_PATH/workflows/ | wc -l)" >> "$BACKUP_PATH/backup_info.txt"

echo
 "备份完成!位置: $BACKUP_PATH"

第二步:设置定时备份

使用 crontab 设置每天凌晨 2 点执行备份:


    
    
    
  crontab -e

添加以下行:


    
    
    
  0 2 * * * /path/to/backup.sh

第三步:恢复备份

当需要恢复时,执行:


    
    
    
  # 恢复工作流
n8n import:workflow --separate --input="./n8n_backups/backup_20240101_020000/workflows/"

# 恢复凭据

n8n import:credentials --input="./n8n_backups/backup_20240101_020000/credentials.json"

第四部分:可执行工作流示例

下面是一个完整的可执行工作流示例,结合 CLI 命令的实际应用。这个工作流会:

  1. 1. 按计划运行
  2. 2. 执行一个主要的数据处理工作流
  3. 3. 导出执行结果
  4. 4. 发送通知

完整工作流 JSON


    
    
    
  {
  "name"
: "CLI Workflow Manager",
  "nodes"
: [
    {

      "parameters"
: {
        "interval"
: 1,
        "unit"
: "days"
      }
,
      "id"
: "Schedule Trigger",
      "name"
: "Schedule Trigger",
      "type"
: "n8n-nodes-base.scheduleTrigger",
      "typeVersion"
: 1,
      "position"
: [250, 300]
    }
,
    {

      "parameters"
: {
        "command"
: "n8n execute --id YOUR_WORKFLOW_ID"
      }
,
      "id"
: "Execute Command",
      "name"
: "Execute Command",
      "type"
: "n8n-nodes-base.executeCommand",
      "typeVersion"
: 1,
      "position"
: [450, 300]
    }
,
    {

      "parameters"
: {
        "method"
: "POST",
        "url"
: "https://your-webhook-url.com",
        "sendBody"
: true,
        "bodyParameters"
: {
          "parameters"
: [
            {

              "name"
: "status",
              "value"
: "workflow_executed"
            }
,
            {

              "name"
: "timestamp",
              "value"
: "={{ $now }}"
            }

          ]

        }

      }
,
      "id"
: "HTTP Request",
      "name"
: "HTTP Request",
      "type"
: "n8n-nodes-base.httpRequest",
      "typeVersion"
: 4,
      "position"
: [650, 300]
    }

  ]
,
  "connections"
: {
    "Schedule Trigger"
: {
      "main"
: [
        [

          {

            "node"
: "Execute Command",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }
,
    "Execute Command"
: {
      "main"
: [
        [

          {

            "node"
: "HTTP Request",
            "type"
: "main",
            "index"
: 0
          }

        ]

      ]

    }

  }
,
  "active"
: false,
  "settings"
: {}
}

如何使用此工作流

  1. 1. 在 n8n 中导入
    • • 打开 n8n 编辑器
    • • 点击右上角 ···Import from File
    • • 选择包含上述 JSON 的文件
  2. 2. 配置参数
    • • 将 YOUR_WORKFLOW_ID 替换为实际的工作流 ID
    • • 将 https://your-webhook-url.com 替换为你的 Webhook 地址
  3. 3. 激活工作流
    • • 点击右上角的 Active 按钮
    • • 工作流现在会每天自动执行
  4. 4. 监控执行
    • • 在工作流列表中查看执行记录
    • • 通过 Webhook 接收执行通知

第五部分:常见问题解答

Q1:导出的凭据包含敏感信息吗?

A:默认情况下,凭据被加密。只有添加 --decrypted 标志时才会以纯文本形式导出。纯文本导出应谨慎处理!

Q2:如果 ID 重复,导入会发生什么?

A:如果导入的工作流或凭据 ID 与现有的相同,新导入的会覆盖现有的。为避免这种情况,可在 JSON 文件中删除或修改 ID。

Q3:导出和导入支持不同的数据库类型吗?

A:是的!使用 export:entitiesimport:entities 命令,你可以在 SQLite、PostgreSQL 等不同数据库类型之间迁移。

Q4:如何在 Docker 中执行 CLI 命令?

A:使用 docker exec -u node -it <container-name> n8n <command>。例如:


    
    
    
  docker exec -u node -it my_n8n n8n export:workflow --all

Q5:能否通过 CLI 创建新的工作流?

A:CLI 主要用于管理和执行现有工作流。新工作流建议通过 Web 编辑器或工作流模板导入。


第六部分:最佳实践建议

1. 定期备份


    
    
    
  # 每周执行一次完整备份
0 0 * * 0 /path/to/backup.sh

2. 版本控制

使用 --separate 标志将每个工作流保存为单独文件,便于 Git 版本控制:


    
    
    
  n8n export:workflow --backup --output=workflows_backup/
git add workflows_backup/
git commit -m "Backup workflows"

3. 安全管理

4. 监控和告警

使用 CLI 在脚本中集成监控:


    
    
    
  if ! n8n execute --id WORKFLOW_ID; then
  # 发送告警

  curl -X POST https://alerts.example.com/error
fi

总结

通过 n8n CLI,你可以:

快速执行 工作流而无需打开编辑器
批量管理 工作流和凭据
自动化备份 关键数据
与脚本集成 实现更复杂的自动化
简化运维 工作流


官方文档[1]
n8n系列教程[2]

引用链接

[1] 官方文档: https://docs.n8n.io/hosting/cli-commands/
[2] n8n系列教程: https://www.undsky.com/blog/?category=n8n%E6%95%99%E7%A8%8B#