自动更新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.txt重置为true

update_n8n.cron

SHELL=/bin/sh  
10 5 * * * /bin/sh /home/sysadmin/n8n/check-update.sh  

功能:

  • 每天凌晨5:10运行check-update.sh脚本
  • 使用/bin/sh作为shell环境

🧩 n8n工作流分解

1. 定时触发器 🕓

  • 功能: 每天凌晨5点触发工作流
  • 节点类型: 定时触发器

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 – n8n工作流检查版本并写入check_update.txt
  • 凌晨5:10 – 定时任务执行check-update.sh响应更新标志
(0)
上一篇 2025年6月2日 下午5:38
下一篇 2025年6月2日 下午5:40

更多相关内容

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