在日常的工作流自动化中,我们经常需要快速地启动工作流、导出备份或批量管理配置。虽然 n8n 编辑器提供了友好的图形界面,但 n8n 命令行界面(CLI) 提供了更强大、更灵活的管理方式。无论你是想通过命令行执行工作流,还是需要进行批量导出导入操作,n8n CLI 都能帮助你事半功倍。
本教程将带你快速上手 n8n CLI,从基础概念到实战操作,让你成为命令行工作流管理的高手。
n8n CLI 是一个强大的命令行工具,允许你:

n8n CLI 可在以下两种环境中使用:
如果你通过 npm 安装了 n8n,命令可直接使用:
n8n <command>如果你使用 Docker 运行 n8n,需要这样执行命令:
docker exec -u node -it <n8n-container-name> n8n <command>例如:
docker exec -u node -it n8n_container n8n workflow:list执行保存的工作流,通过其 ID 指定:
n8n execute --id <WORKFLOW_ID>实例:
n8n execute --id NGgtX67xWcwx2a3I应用场景:
n8n update:workflow --id=<ID> --active=truen8n update:workflow --id=<ID> --active=false停用所有工作流:
n8n update:workflow --all --active=false激活所有工作流:
n8n update:workflow --all --active=true重要提示:这些命令需要重启 n8n 才能生效!
应用场景:
n8n export:workflow --all输出到标准输出(终端显示)。
n8n export:workflow --id=<ID> --output=workflow.jsonn8n export:workflow --all --output=backups/latest/file.jsonn8n export:workflow --backup --output=backups/latest/此命令会:
--all --pretty --separate 命令标志说明:
| 标志 | 说明 |
|---|---|
--all | 导出所有工作流 |
--id | 导出指定 ID 的工作流 |
--output | 指定输出文件或目录 |
--pretty | 格式化输出,更易阅读 |
--separate | 每个工作流单独保存为文件 |
--backup | 备份模式,相当于 --all --pretty --separate |
n8n export:credentials --alln8n export:credentials --id=<ID> --output=creds.jsonn8n export:credentials --all --decrypted --output=creds_plain.json⚠️ 安全警告:导出的纯文本文件包含敏感信息,请妥善保管!
n8n import:workflow --input=workflow.jsonn8n import:workflow --separate --input=backups/latest/n8n import:credentials --input=credentials.jsonn8n import:workflow --input=workflow.json --projectId=<PROJECT_ID>重要说明:
导出整个数据库的所有实体(包括工作流历史):
n8n export:entities --outputDir=./db_backup包含执行历史的大型备份:
n8n export:entities --outputDir=./db_backup --includeExecutionHistoryDataTables然后可以导入到其他数据库:
n8n import:entities --inputDir=./db_backup应用场景:
n8n user-management:reset此命令会移除所有用户账户,恢复到初始状态。
应用场景:
n8n mfa:disable --email=user@example.com用户可重新登录后重新设置 MFA。
n8n ldap:resetn8n license:clear重置 n8n 为默认功能。
n8n license:info显示当前许可证状态和信息。
检测 n8n 实例中的常见安全问题:
n8n audit此命令会扫描并报告:
现在让我们通过一个完整的案例,学习如何使用 CLI 命令构建一个自动备份系统。
你需要:

创建一个 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 命令的实际应用。这个工作流会:
{
"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": {}
}··· → Import from FileYOUR_WORKFLOW_ID 替换为实际的工作流 IDhttps://your-webhook-url.com 替换为你的 Webhook 地址Active 按钮A:默认情况下,凭据被加密。只有添加 --decrypted 标志时才会以纯文本形式导出。纯文本导出应谨慎处理!
A:如果导入的工作流或凭据 ID 与现有的相同,新导入的会覆盖现有的。为避免这种情况,可在 JSON 文件中删除或修改 ID。
A:是的!使用 export:entities 和 import:entities 命令,你可以在 SQLite、PostgreSQL 等不同数据库类型之间迁移。
A:使用 docker exec -u node -it <container-name> n8n <command>。例如:
docker exec -u node -it my_n8n n8n export:workflow --allA:CLI 主要用于管理和执行现有工作流。新工作流建议通过 Web 编辑器或工作流模板导入。
# 每周执行一次完整备份
0 0 * * 0 /path/to/backup.sh使用 --separate 标志将每个工作流保存为单独文件,便于 Git 版本控制:
n8n export:workflow --backup --output=workflows_backup/
git add workflows_backup/
git commit -m "Backup workflows"使用 CLI 在脚本中集成监控:
if ! n8n execute --id WORKFLOW_ID; then
# 发送告警
curl -X POST https://alerts.example.com/error
fi通过 n8n CLI,你可以:
✅ 快速执行 工作流而无需打开编辑器
✅ 批量管理 工作流和凭据
✅ 自动化备份 关键数据
✅ 与脚本集成 实现更复杂的自动化
✅ 简化运维 工作流
[1] 官方文档: https://docs.n8n.io/hosting/cli-commands/
[2] n8n系列教程: https://www.undsky.com/blog/?category=n8n%E6%95%99%E7%A8%8B#