🔄 n8n工作流:检查并更新n8n版本
此工作流可自动检测本地n8n版本是否过时,并在需要时创建文件提示更新。
🖥️ 工作环境
- 操作系统: Ubuntu 24.04
- n8n安装方式: Docker容器
📁 项目目录结构
n8n/
├── check_update.txt
├── check-update.sh
├── compose.yml
├── update_n8n.cron
🧾 文件说明
check_update.txt
包含单个单词:
true
:需要更新false
:无需更新
check-update.sh
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
if grep -q "true" /home/sysadmin/n8n/check_update.txt; then
# 在此处添加更新逻辑
echo "检测到需要更新 - 请补充更新逻辑"
echo true > /home/sysadmin/n8n/check_update.txt
fi
功能:
- 读取
check_update.txt
内容 - 若含
true
则执行更新逻辑(当前为占位符) - 重置
check_update.txt
为true
update_n8n.cron
SHELL=/bin/sh
10 5 * * * /bin/sh /home/sysadmin/n8n/check-update.sh
功能:
- 每日5:10 AM运行
check-update.sh
脚本 - 使用
/bin/sh
作为Shell环境
🧩 n8n工作流分解
1. 定时触发器 🕓
- 功能: 每日5:00 AM触发工作流
- 节点类型: 定时触发器
2. 获取最新n8n版本 🌐
- 功能: 从npm获取n8n最新版本
- 接口:
https://registry.npmjs.org/n8n/latest
- 节点类型: HTTP请求
3. 获取本地n8n版本 🖥️
- 功能: 读取当前运行的n8n版本
- 接口:
http://192.168.100.18:5678/rest/settings
- 节点类型: HTTP请求
4. 条件判断 🔍
- 功能: 对比本地与最新版本
- 条件: 若版本不一致 → 需要更新
5. SSH操作 🧾
- 功能: 通过SSH将结果写入主机文件
- 逻辑:
echo "{{ $('If').params.conditions ? 'false' : 'true' }}" > check_update.txt
效果: 需要更新时写入"true"
,否则写入"false"
。
🛠️ Ubuntu设置Crontab
1. 注册定时任务:
crontab update_n8n.cron
2. 验证定时任务:
crontab -l
✅ 运行结果
- 5:00 AM – n8n工作流检查版本并写入
check_update.txt
- 5:10 AM – 定时任务运行
check-update.sh
响应更新标志