自动更新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

效果:如需更新则将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)
上一篇 6天前
下一篇 6天前

更多相关内容

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