自动更新n8n版本

🔄 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.txttrue

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响应更新标志

(0)
上一篇 5天前
下一篇 5天前

更多相关内容

从零掌握 AI + MCP/Responses API 的自动化设计,节省90%的时间和成本,成为AI自动化专家。学会 n8n、Coze、Dify 接入全球领先 AI应用生态,打造属于你的 AI智能工作流。