<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AI自动化 on 诚实雷达</title><link>https://honestradar.com/tags/ai%E8%87%AA%E5%8A%A8%E5%8C%96/</link><description>Recent content in AI自动化 on 诚实雷达</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Wed, 03 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://honestradar.com/tags/ai%E8%87%AA%E5%8A%A8%E5%8C%96/index.xml" rel="self" type="application/rss+xml"/><item><title>2026年用VPS自托管n8n：无限AI自动化工作流，替代Zapier省下90%费用</title><link>https://honestradar.com/vps-hosting/n8n-ai-workflow-vps-2026/</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate><guid>https://honestradar.com/vps-hosting/n8n-ai-workflow-vps-2026/</guid><description>&lt;img src="https://honestradar.com/images/n8n-ai-workflow-vps-2026.jpg" alt="Featured image of post 2026年用VPS自托管n8n：无限AI自动化工作流，替代Zapier省下90%费用" /&gt;&lt;p&gt;Zapier 每月 $19.99 起步、750 次执行上限，Make 每月 $9 起但 1000 次操作就封顶。你稍微跑几个自动化流程，额度就烧完了——然后要么加钱，要么停。&lt;/p&gt;
&lt;p&gt;2026 年的正确姿势：&lt;strong&gt;在 VPS 上自托管 n8n 开源版&lt;/strong&gt;。无限执行次数、400+ 应用集成、内置 AI Agent 节点，一台 $5/月的 VPS 就能跑起来，省下 90% 的自动化费用。&lt;/p&gt;
&lt;p&gt;本文手把手教你从零部署 n8n 到 VPS，配置 AI 工作流，跑通 5 个实战自动化场景。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="为什么选-n8n-而不是-zapiermake"&gt;为什么选 n8n 而不是 Zapier/Make
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;对比项&lt;/th&gt;
 &lt;th&gt;Zapier&lt;/th&gt;
 &lt;th&gt;Make&lt;/th&gt;
 &lt;th&gt;n8n 自托管&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;月费&lt;/td&gt;
 &lt;td&gt;$19.99 起&lt;/td&gt;
 &lt;td&gt;$9 起&lt;/td&gt;
 &lt;td&gt;$0（仅 VPS 费用）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;执行限制&lt;/td&gt;
 &lt;td&gt;750 次/月&lt;/td&gt;
 &lt;td&gt;1,000 次/月&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;无限&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;AI 能力&lt;/td&gt;
 &lt;td&gt;有限&lt;/td&gt;
 &lt;td&gt;有限&lt;/td&gt;
 &lt;td&gt;原生 AI Agent 节点&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;数据隐私&lt;/td&gt;
 &lt;td&gt;第三方服务器&lt;/td&gt;
 &lt;td&gt;第三方服务器&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;你的 VPS&lt;/strong&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;自定义代码&lt;/td&gt;
 &lt;td&gt;不支持&lt;/td&gt;
 &lt;td&gt;有限&lt;/td&gt;
 &lt;td&gt;完整 JavaScript/Python&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;集成数量&lt;/td&gt;
 &lt;td&gt;6,000+&lt;/td&gt;
 &lt;td&gt;1,800+&lt;/td&gt;
 &lt;td&gt;400+（持续增长）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;n8n 的短板是集成数量不如 Zapier，但 400+ 覆盖了主流场景（Google、Slack、Notion、GitHub、Telegram、邮件等），对绝大多数用户够用。而且 n8n 支持 HTTP Request 节点，理论上可以对接任何 API。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;核心优势：&lt;/strong&gt; n8n 开源社区版（Community Edition）完全免费，自托管无限执行。Zapier 按&amp;quot;任务&amp;quot;收费，n8n 按你自己的节奏跑，没有上限。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="你需要准备什么"&gt;你需要准备什么
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;准备项&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;th&gt;花费&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;VPS 服务器&lt;/td&gt;
 &lt;td&gt;2核2GB 起步，推荐 2核4GB&lt;/td&gt;
 &lt;td&gt;$1.99-5/月&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;域名（可选）&lt;/td&gt;
 &lt;td&gt;用于 HTTPS 访问&lt;/td&gt;
 &lt;td&gt;$0-12/年&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SSH 工具&lt;/td&gt;
 &lt;td&gt;macOS 用 Terminal，Windows 用 PuTTY&lt;/td&gt;
 &lt;td&gt;免费&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;还没买 VPS？推荐这几款性价比高的：&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;VPS&lt;/th&gt;
 &lt;th&gt;配置&lt;/th&gt;
 &lt;th&gt;月付&lt;/th&gt;
 &lt;th&gt;适合场景&lt;/th&gt;
 &lt;th&gt;选购&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;RackNerd&lt;/td&gt;
 &lt;td&gt;2核 2GB 40GB&lt;/td&gt;
 &lt;td&gt;$1.99/月&lt;/td&gt;
 &lt;td&gt;轻量工作流跑通&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://my.racknerd.com/aff.php?aff=19978" rel="nofollow sponsored" target="_blank"&gt;选购&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Hostinger&lt;/td&gt;
 &lt;td&gt;2核 4GB 50GB&lt;/td&gt;
 &lt;td&gt;$5.99/月&lt;/td&gt;
 &lt;td&gt;10+工作流稳定跑&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.hostinger.com?REFERRALCODE=JZ1ZL8465QCG" rel="nofollow sponsored" target="_blank"&gt;选购&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Vultr&lt;/td&gt;
 &lt;td&gt;2核 4GB 80GB&lt;/td&gt;
 &lt;td&gt;$24/月&lt;/td&gt;
 &lt;td&gt;需要高性能和低延迟&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.vultr.com/?ref=9706229" rel="nofollow sponsored" target="_blank"&gt;选购&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;选 RackNerd 还是 Hostinger？&lt;/strong&gt; 纯跑 n8n 工作流，RackNerd $1.99/月够用。如果要同时跑 AI 模型（Ollama），建议 Hostinger 4GB 内存版。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="第一步ssh-登录-vps"&gt;第一步：SSH 登录 VPS
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh root@你的VPS_IP
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;登录后先更新系统：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Ubuntu/Debian&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt update &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt upgrade -y
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# CentOS/RHEL&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dnf update -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="第二步安装-docker-和-docker-compose"&gt;第二步：安装 Docker 和 Docker Compose
&lt;/h2&gt;&lt;p&gt;n8n 官方推荐用 Docker 部署，一行命令搞定：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 安装 Docker&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -fsSL https://get.docker.com | sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemctl enable docker &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; systemctl start docker
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 验证安装&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker --version
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker compose version
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果 &lt;code&gt;docker compose&lt;/code&gt; 命令不可用，单独安装插件：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt install -y docker-compose-plugin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="第三步用-docker-compose-部署-n8n"&gt;第三步：用 Docker Compose 部署 n8n
&lt;/h2&gt;&lt;p&gt;创建项目目录并写入配置：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p ~/n8n &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; cd ~/n8n
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;创建 &lt;code&gt;docker-compose.yml&lt;/code&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat &amp;gt; docker-compose.yml &lt;span style="color:#e6db74"&gt;&amp;lt;&amp;lt; &amp;#39;EOF&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;version: &amp;#39;3.8&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;services:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; n8n:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; image: docker.n8n.io/n8nio/n8n
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; container_name: n8n
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; restart: always
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; ports:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; - &amp;#34;5678:5678&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; environment:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; - N8N_BASIC_AUTH_ACTIVE=true
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; - N8N_BASIC_AUTH_USER=admin
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; - N8N_BASIC_AUTH_PASSWORD=你的密码
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; - N8N_HOST=你的域名或IP
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; - N8N_PORT=5678
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; - N8N_PROTOCOL=http
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; - WEBHOOK_URL=http://你的域名或IP/
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; - GENERIC_TIMEZONE=Asia/Shanghai
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; - TZ=Asia/Shanghai
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; volumes:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; - n8n_data:/home/node/.n8n
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;volumes:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; n8n_data:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;修改说明：&lt;/strong&gt; 把 &lt;code&gt;你的密码&lt;/code&gt;、&lt;code&gt;你的域名或IP&lt;/code&gt; 替换成实际值。如果暂时没有域名，直接用 VPS 的 IP 地址。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;启动 n8n：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;验证运行状态：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker compose ps
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 应该看到 n8n 容器状态为 running&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;浏览器访问 &lt;code&gt;http://你的VPS_IP:5678&lt;/code&gt;，就能看到 n8n 的欢迎页面了。&lt;/p&gt;
&lt;p&gt;首次访问需要注册管理员账号：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;点击 &amp;ldquo;Get started&amp;rdquo;&lt;/li&gt;
&lt;li&gt;设置你的邮箱和密码（这是本地账号，数据存在你 VPS 上）&lt;/li&gt;
&lt;li&gt;进入工作流编辑器界面&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="第四步配置-https强烈推荐"&gt;第四步：配置 HTTPS（强烈推荐）
&lt;/h2&gt;&lt;p&gt;没有 HTTPS 的 n8n 暴露在公网上很危险。用 Caddy 一键搞定：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 安装 Caddy&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt install -y debian-keyring debian-archive-keyring apt-transport-https
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -1sLf &lt;span style="color:#e6db74"&gt;&amp;#39;https://dl.cloudsmith.io/public/caddy/stable/gpg.key&amp;#39;&lt;/span&gt; | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -1sLf &lt;span style="color:#e6db74"&gt;&amp;#39;https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt&amp;#39;&lt;/span&gt; | tee /etc/apt/sources.list.d/caddy-stable.list
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apt update &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt install caddy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;配置反向代理：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat &amp;gt; /etc/caddy/Caddyfile &lt;span style="color:#e6db74"&gt;&amp;lt;&amp;lt; &amp;#39;EOF&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;n8n.你的域名.com {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt; reverse_proxy localhost:5678
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemctl restart caddy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;现在可以用 &lt;code&gt;https://n8n.你的域名.com&lt;/code&gt; 安全访问了。Caddy 会自动申请和续期 SSL 证书。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="第五步配置-ai-节点n8n-的杀手锏"&gt;第五步：配置 AI 节点（n8n 的杀手锏）
&lt;/h2&gt;&lt;p&gt;n8n 2.0+ 内置了 AI Agent 节点，可以直接在工作流里调用大模型。支持三种 AI 后端：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;AI 后端&lt;/th&gt;
 &lt;th&gt;优势&lt;/th&gt;
 &lt;th&gt;费用&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Ollama（本地）&lt;/td&gt;
 &lt;td&gt;完全免费、数据不出 VPS&lt;/td&gt;
 &lt;td&gt;$0&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;OpenAI API&lt;/td&gt;
 &lt;td&gt;GPT-4o 质量最高&lt;/td&gt;
 &lt;td&gt;按 token 计费&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;兼容 API（DeepSeek/通义等）&lt;/td&gt;
 &lt;td&gt;性价比高&lt;/td&gt;
 &lt;td&gt;便宜&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;推荐方案：&lt;/strong&gt; 用 Ollama 跑本地模型（零成本），复杂任务调 OpenAI API。&lt;/p&gt;
&lt;h3 id="配置-ollama-作为-ai-后端"&gt;配置 Ollama 作为 AI 后端
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 安装 Ollama&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -fsSL https://ollama.com/install.sh | sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 下载一个轻量模型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ollama pull qwen2.5:7b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;在 n8n 中添加 Ollama 节点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;打开工作流编辑器&lt;/li&gt;
&lt;li&gt;点击 &amp;ldquo;+&amp;rdquo; 添加节点&lt;/li&gt;
&lt;li&gt;搜索 &amp;ldquo;Ollama&amp;rdquo;&lt;/li&gt;
&lt;li&gt;配置 Base URL：&lt;code&gt;http://host.docker.internal:11434&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;选择模型 &lt;code&gt;qwen2.5:7b&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt; Docker 容器内访问宿主机 Ollama，用 &lt;code&gt;host.docker.internal&lt;/code&gt; 而不是 &lt;code&gt;localhost&lt;/code&gt;。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="配置-openai-api"&gt;配置 OpenAI API
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;在 n8n 设置中添加 &amp;ldquo;OpenAI API&amp;rdquo; 凭证&lt;/li&gt;
&lt;li&gt;填入你的 API Key&lt;/li&gt;
&lt;li&gt;在工作流中添加 OpenAI 节点，选择模型&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="5-个实战-ai-自动化场景"&gt;5 个实战 AI 自动化场景
&lt;/h2&gt;&lt;h3 id="场景-1ai-自动回复邮件"&gt;场景 1：AI 自动回复邮件
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;触发：收到新邮件（Gmail 节点）
→ AI 分析邮件内容（Ollama/OpenAI 节点）
→ 生成回复草稿
→ 保存到草稿箱或自动发送
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;省下：&lt;/strong&gt; 手动处理邮件每天 30-60 分钟&lt;/p&gt;
&lt;h3 id="场景-2ai-自动生成社交媒体内容"&gt;场景 2：AI 自动生成社交媒体内容
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;触发：定时（每天早上 9 点）
→ 抓取行业 RSS/新闻
→ AI 生成 3 条推文 + 配图建议
→ 自动发布到 Twitter/LinkedIn
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;省下：&lt;/strong&gt; 内容创作每天 1-2 小时&lt;/p&gt;
&lt;h3 id="场景-3ai-客服自动分类和回复"&gt;场景 3：AI 客服自动分类和回复
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;触发：收到客服工单/消息
→ AI 分类（咨询/投诉/技术支持）
→ 简单问题自动回复
→ 复杂问题创建工单并通知人工
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;省下：&lt;/strong&gt; 客服人力成本 50%+&lt;/p&gt;
&lt;h3 id="场景-4ai-文档自动摘要"&gt;场景 4：AI 文档自动摘要
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;触发：Google Drive 新文件
→ 读取文档内容
→ AI 生成摘要和关键词
→ 保存摘要到 Notion 数据库
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;省下：&lt;/strong&gt; 文档整理每天 30 分钟&lt;/p&gt;
&lt;h3 id="场景-5ai-监控竞品动态"&gt;场景 5：AI 监控竞品动态
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;触发：定时（每天下午 6 点）
→ 抓取竞品网站/社交媒体
→ AI 对比分析变化
→ 生成日报发送到 Slack
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;省下：&lt;/strong&gt; 竞品调研每周 2-3 小时&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="性能实测vps-跑-n8n-够用吗"&gt;性能实测：VPS 跑 n8n 够用吗？
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;VPS 配置&lt;/th&gt;
 &lt;th&gt;工作流数量&lt;/th&gt;
 &lt;th&gt;并发执行&lt;/th&gt;
 &lt;th&gt;体验&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;2核 2GB (RackNerd $1.99/月)&lt;/td&gt;
 &lt;td&gt;5-10 个&lt;/td&gt;
 &lt;td&gt;2-3 个同时跑&lt;/td&gt;
 &lt;td&gt;日常够用&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2核 4GB (Hostinger $5.99/月)&lt;/td&gt;
 &lt;td&gt;20-30 个&lt;/td&gt;
 &lt;td&gt;5-10 个同时跑&lt;/td&gt;
 &lt;td&gt;流畅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;4核 8GB (Vultr $48/月)&lt;/td&gt;
 &lt;td&gt;50+ 个&lt;/td&gt;
 &lt;td&gt;20+ 个同时跑&lt;/td&gt;
 &lt;td&gt;非常流畅&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;结论：&lt;/strong&gt; 2核4GB 是甜点配置，$5/月就能拥有无限 AI 自动化。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="常见问题"&gt;常见问题
&lt;/h2&gt;&lt;h3 id="q-n8n-开源版和付费版有什么区别"&gt;Q: n8n 开源版和付费版有什么区别？
&lt;/h3&gt;&lt;p&gt;社区版（Community Edition）完全免费，自托管无限执行。付费版（Business）增加 SSO、Git 集成、审计日志等企业功能。对个人用户和小团队，社区版完全够用。&lt;/p&gt;
&lt;h3 id="q-需要会写代码吗"&gt;Q: 需要会写代码吗？
&lt;/h3&gt;&lt;p&gt;不需要。n8n 的核心优势就是可视化拖拽编辑器。所有工作流都是节点连接，不写一行代码就能跑通 90% 的场景。如果需要复杂逻辑，支持 JavaScript/Python 代码节点。&lt;/p&gt;
&lt;h3 id="q-和-zapier-比哪个好"&gt;Q: 和 Zapier 比哪个好？
&lt;/h3&gt;&lt;p&gt;Zapier 集成数量多（6000+）、开箱即用，适合不想折腾的人。n8n 自托管免费、无限执行、支持 AI，适合愿意花 30 分钟部署、追求性价比和技术自由度的用户。&lt;/p&gt;
&lt;h3 id="q-数据安全吗"&gt;Q: 数据安全吗？
&lt;/h3&gt;&lt;p&gt;自托管 n8n 所有数据都在你自己的 VPS 上，不经过任何第三方服务器。比 Zapier/Make 更安全，特别适合处理敏感数据（客户信息、财务数据、内部文档）。&lt;/p&gt;
&lt;h3 id="q-vps-挂了怎么办"&gt;Q: VPS 挂了怎么办？
&lt;/h3&gt;&lt;p&gt;建议开启 n8n 的自动备份：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 定时备份 n8n 数据&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;crontab -e
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 添加：每周日凌晨 3 点备份&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;3&lt;/span&gt; * * &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; docker exec n8n n8n export:workflow --all --output&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/home/node/backup/workflows.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="选购推荐"&gt;选购推荐
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;需求&lt;/th&gt;
 &lt;th&gt;推荐 VPS&lt;/th&gt;
 &lt;th&gt;月付&lt;/th&gt;
 &lt;th&gt;选购&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;轻量工作流尝鲜&lt;/td&gt;
 &lt;td&gt;RackNerd 2核2GB&lt;/td&gt;
 &lt;td&gt;$1.99/月&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://my.racknerd.com/aff.php?aff=19978" rel="nofollow sponsored" target="_blank"&gt;选购&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;10+工作流稳定跑&lt;/td&gt;
 &lt;td&gt;Hostinger 2核4GB&lt;/td&gt;
 &lt;td&gt;$5.99/月&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.hostinger.com?REFERRALCODE=JZ1ZL8465QCG" rel="nofollow sponsored" target="_blank"&gt;选购&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;高性能多工作流&lt;/td&gt;
 &lt;td&gt;Vultr 4核8GB&lt;/td&gt;
 &lt;td&gt;$48/月&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://www.vultr.com/?ref=9706229" rel="nofollow sponsored" target="_blank"&gt;选购&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="下一步"&gt;下一步
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;部署完成后&lt;/strong&gt;，先跑通一个简单的邮件通知工作流练手&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;接入 AI&lt;/strong&gt;，用 Ollama + n8n 的 AI Agent 节点搭建智能工作流&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;进阶玩法&lt;/strong&gt;，看我们的 &lt;a class="link" href="https://honestradar.com/vps-hosting/vps-ai-self-host-ollama-2026/" &gt;Ollama + Open WebUI 自托管教程&lt;/a&gt;，把 n8n 和私有 AI 助手联动起来&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;As an Amazon Associate, HonestRadar earns from qualifying purchases. Some links are affiliate links — we may earn a commission at no extra cost to you.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>用AI搭建VPS自动化监控告警：Claude + Bash实战教程</title><link>https://honestradar.com/vps-hosting/ai-vps-monitoring-automation-tutorial-2026/</link><pubDate>Mon, 01 Jun 2026 00:00:00 +0000</pubDate><guid>https://honestradar.com/vps-hosting/ai-vps-monitoring-automation-tutorial-2026/</guid><description>&lt;img src="https://honestradar.com/images/ai-vps-monitoring-automation-tutorial-2026.jpg" alt="Featured image of post 用AI搭建VPS自动化监控告警：Claude + Bash实战教程" /&gt;&lt;p&gt;不会写复杂的监控脚本？没关系——2026 年了，让 AI 帮你写。本教程用 Claude AI + Bash 脚本搭建一套 VPS 自动化监控系统，监控 CPU、内存、磁盘、流量，异常时自动发告警到邮箱或 Telegram。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="你需要准备什么"&gt;你需要准备什么
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;需要什么&lt;/th&gt;
 &lt;th&gt;说明&lt;/th&gt;
 &lt;th&gt;花费&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;一台 VPS&lt;/td&gt;
 &lt;td&gt;Linux 系统（Ubuntu/Debian 推荐）&lt;/td&gt;
 &lt;td&gt;&lt;a href="https://my.racknerd.com/aff.php?aff=19978" rel="nofollow sponsored" target="_blank"&gt;RackNerd 2GB $35.99/年&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Claude AI 访问&lt;/td&gt;
 &lt;td&gt;claude.ai 或 API&lt;/td&gt;
 &lt;td&gt;免费/付费&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Telegram Bot&lt;/td&gt;
 &lt;td&gt;用于接收告警消息&lt;/td&gt;
 &lt;td&gt;免费&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;基础 Linux 知识&lt;/td&gt;
 &lt;td&gt;会用 SSH、基本命令&lt;/td&gt;
 &lt;td&gt;—&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;如果你还没有 VPS：&lt;/strong&gt; 推荐 &lt;a href="https://my.racknerd.com/aff.php?aff=19978" rel="nofollow sponsored" target="_blank"&gt;RackNerd 2GB 套餐（$35.99/年，折合 $3.00/月）&lt;/a&gt;——2 核 CPU、2GB 内存、35GB SSD、5TB 流量，跑监控脚本绰绰有余。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="第-1-步用-claude-生成监控脚本"&gt;第 1 步：用 Claude 生成监控脚本
&lt;/h2&gt;&lt;p&gt;打开 Claude AI（claude.ai），输入以下 prompt：&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;帮我写一个 Bash 脚本 &lt;code&gt;vps_monitor.sh&lt;/code&gt;，功能：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;检查 CPU 使用率（超过 80% 告警）&lt;/li&gt;
&lt;li&gt;检查内存使用率（超过 85% 告警）&lt;/li&gt;
&lt;li&gt;检查磁盘使用率（超过 90% 告警）&lt;/li&gt;
&lt;li&gt;检查最近 1 小时的网络流量（超过 1GB 告警）&lt;/li&gt;
&lt;li&gt;所有检查结果写入日志文件&lt;/li&gt;
&lt;li&gt;如果有告警，通过 Telegram Bot API 发送消息&lt;/li&gt;
&lt;li&gt;支持通过环境变量配置 Telegram Bot Token 和 Chat ID&lt;/li&gt;
&lt;/ol&gt;

 &lt;/blockquote&gt;
&lt;p&gt;Claude 会生成一个完整的脚本。以下是它应该产出的核心逻辑：&lt;/p&gt;
&lt;h3 id="核心脚本claude-生成--优化"&gt;核心脚本（Claude 生成 + 优化）
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# VPS Monitor Script - AI Generated with Claude&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 监控 CPU、内存、磁盘、流量，异常时发 Telegram 告警&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# === 配置 ===&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;TELEGRAM_BOT_TOKEN&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;TELEGRAM_BOT_TOKEN&lt;span style="color:#66d9ef"&gt;:-&lt;/span&gt;your_bot_token_here&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;TELEGRAM_CHAT_ID&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;TELEGRAM_CHAT_ID&lt;span style="color:#66d9ef"&gt;:-&lt;/span&gt;your_chat_id_here&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;LOG_FILE&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;/var/log/vps_monitor.log&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;CPU_THRESHOLD&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;80&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;MEM_THRESHOLD&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;85&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;DISK_THRESHOLD&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;90&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;TRAFFIC_THRESHOLD_GB&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# === 函数 ===&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;send_alert&lt;span style="color:#f92672"&gt;()&lt;/span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; local message&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$1&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;[&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;date &lt;span style="color:#e6db74"&gt;&amp;#39;+%Y-%m-%d %H:%M:%S&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt;] ALERT: &lt;/span&gt;$message&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$LOG_FILE&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Telegram 告警&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#f92672"&gt;[[&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$TELEGRAM_BOT_TOKEN&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; !&lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;your_bot_token_here&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;]]&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; curl -s -X POST &lt;span style="color:#e6db74"&gt;&amp;#34;https://api.telegram.org/bot&lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;TELEGRAM_BOT_TOKEN&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;/sendMessage&amp;#34;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -d &lt;span style="color:#e6db74"&gt;&amp;#34;chat_id=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;TELEGRAM_CHAT_ID&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -d &lt;span style="color:#e6db74"&gt;&amp;#34;text=⚠️ VPS 告警: &lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;message&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -d &lt;span style="color:#e6db74"&gt;&amp;#34;parse_mode=HTML&amp;#34;&lt;/span&gt; &amp;gt; /dev/null 2&amp;gt;&amp;amp;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# 邮件告警（需要安装 mailutils）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# echo &amp;#34;VPS Alert: $message&amp;#34; | mail -s &amp;#34;VPS Alert&amp;#34; your@email.com&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;log_status&lt;span style="color:#f92672"&gt;()&lt;/span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;[&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;date &lt;span style="color:#e6db74"&gt;&amp;#39;+%Y-%m-%d %H:%M:%S&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt;] &lt;/span&gt;$1&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &amp;gt;&amp;gt; &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$LOG_FILE&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# === CPU 检查 ===&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;check_cpu&lt;span style="color:#f92672"&gt;()&lt;/span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; local cpu_usage&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;top -bn1 | grep &lt;span style="color:#e6db74"&gt;&amp;#34;Cpu(s)&amp;#34;&lt;/span&gt; | awk &lt;span style="color:#e6db74"&gt;&amp;#39;{print $2}&amp;#39;&lt;/span&gt; | cut -d&lt;span style="color:#e6db74"&gt;&amp;#39;%&amp;#39;&lt;/span&gt; -f1&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# 备用方法&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#f92672"&gt;[[&lt;/span&gt; -z &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$cpu_usage&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;]]&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cpu_usage&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;mpstat &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; | awk &lt;span style="color:#e6db74"&gt;&amp;#39;/Average/ {print 100 - $NF}&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; log_status &lt;span style="color:#e6db74"&gt;&amp;#34;CPU: &lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;cpu_usage&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;%&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#f92672"&gt;((&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$cpu_usage&lt;span style="color:#e6db74"&gt; &amp;gt; &lt;/span&gt;$CPU_THRESHOLD&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | bc -l&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt; &lt;span style="color:#f92672"&gt;))&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; send_alert &lt;span style="color:#e6db74"&gt;&amp;#34;CPU 使用率过高: &lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;cpu_usage&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;% (阈值: &lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;CPU_THRESHOLD&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;%)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# === 内存检查 ===&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;check_memory&lt;span style="color:#f92672"&gt;()&lt;/span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; local mem_info&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;free | awk &lt;span style="color:#e6db74"&gt;&amp;#39;/Mem:/ {printf &amp;#34;%.1f&amp;#34;, $3/$2 * 100}&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; log_status &lt;span style="color:#e6db74"&gt;&amp;#34;Memory: &lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;mem_info&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;%&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#f92672"&gt;((&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$mem_info&lt;span style="color:#e6db74"&gt; &amp;gt; &lt;/span&gt;$MEM_THRESHOLD&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | bc -l&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt; &lt;span style="color:#f92672"&gt;))&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; send_alert &lt;span style="color:#e6db74"&gt;&amp;#34;内存使用率过高: &lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;mem_info&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;% (阈值: &lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;MEM_THRESHOLD&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;%)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# === 磁盘检查 ===&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;check_disk&lt;span style="color:#f92672"&gt;()&lt;/span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; local disk_usage&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;df / | awk &lt;span style="color:#e6db74"&gt;&amp;#39;NR==2 {print $5}&amp;#39;&lt;/span&gt; | tr -d &lt;span style="color:#e6db74"&gt;&amp;#39;%&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; log_status &lt;span style="color:#e6db74"&gt;&amp;#34;Disk: &lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;disk_usage&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;%&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#f92672"&gt;((&lt;/span&gt; disk_usage &amp;gt; DISK_THRESHOLD &lt;span style="color:#f92672"&gt;))&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; send_alert &lt;span style="color:#e6db74"&gt;&amp;#34;磁盘使用率过高: &lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;disk_usage&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;% (阈值: &lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;DISK_THRESHOLD&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt;%)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# === 流量检查 ===&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;check_traffic&lt;span style="color:#f92672"&gt;()&lt;/span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; local rx_bytes&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;cat /sys/class/net/eth0/statistics/rx_bytes 2&amp;gt;/dev/null &lt;span style="color:#f92672"&gt;||&lt;/span&gt; echo 0&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; local tx_bytes&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;cat /sys/class/net/eth0/statistics/tx_bytes 2&amp;gt;/dev/null &lt;span style="color:#f92672"&gt;||&lt;/span&gt; echo 0&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; local total_gb&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;scale=2; (&lt;/span&gt;$rx_bytes&lt;span style="color:#e6db74"&gt; + &lt;/span&gt;$tx_bytes&lt;span style="color:#e6db74"&gt;) / 1073741824&amp;#34;&lt;/span&gt; | bc&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; log_status &lt;span style="color:#e6db74"&gt;&amp;#34;Traffic (since boot): &lt;/span&gt;&lt;span style="color:#e6db74"&gt;${&lt;/span&gt;total_gb&lt;span style="color:#e6db74"&gt;}&lt;/span&gt;&lt;span style="color:#e6db74"&gt; GB&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# === 主函数 ===&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;main&lt;span style="color:#f92672"&gt;()&lt;/span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; log_status &lt;span style="color:#e6db74"&gt;&amp;#34;=== VPS Monitor Run ===&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; check_cpu
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; check_memory
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; check_disk
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; check_traffic
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; log_status &lt;span style="color:#e6db74"&gt;&amp;#34;=== Monitor Complete ===&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;main &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$@&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="第-2-步创建-telegram-bot"&gt;第 2 步：创建 Telegram Bot
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;打开 Telegram，搜索 &lt;strong&gt;@BotFather&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;发送 &lt;code&gt;/newbot&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;按提示给 Bot 起名（如 &lt;code&gt;VPS Monitor Bot&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;获得 Bot Token（格式：&lt;code&gt;123456789:ABCdefGHIjklMNOpqrsTUVwxyz&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;发送任意消息给你的 Bot&lt;/li&gt;
&lt;li&gt;访问 &lt;code&gt;https://api.telegram.org/bot&amp;lt;TOKEN&amp;gt;/getUpdates&lt;/code&gt; 获取 Chat ID&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="第-3-步部署脚本到-vps"&gt;第 3 步：部署脚本到 VPS
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# SSH 登录 VPS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh root@your-vps-ip
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 创建脚本文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nano /usr/local/bin/vps_monitor.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 粘贴 Claude 生成的脚本内容，保存退出&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 添加执行权限&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod +x /usr/local/bin/vps_monitor.sh
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 创建日志目录&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;touch /var/log/vps_monitor.log
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 设置环境变量&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;export TELEGRAM_BOT_TOKEN=&amp;#34;your_token_here&amp;#34;&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/environment
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#39;export TELEGRAM_CHAT_ID=&amp;#34;your_chat_id_here&amp;#34;&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/environment
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 测试运行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;source /etc/environment &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; /usr/local/bin/vps_monitor.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="第-4-步设置定时任务"&gt;第 4 步：设置定时任务
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 编辑 crontab&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;crontab -e
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 添加以下行（每 5 分钟检查一次）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;*/5 * * * * source /etc/environment &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; /usr/local/bin/vps_monitor.sh &amp;gt;&amp;gt; /var/log/vps_monitor.log 2&amp;gt;&amp;amp;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="第-5-步用-ai-优化脚本"&gt;第 5 步：用 AI 优化脚本
&lt;/h2&gt;&lt;p&gt;脚本跑起来后，你可以继续让 Claude 帮你优化：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;帮我加上 nginx 进程检测，挂了就告警&amp;rdquo;&lt;/strong&gt; → Claude 会加上进程检查&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;加上日志自动清理，超过 7 天自动删除&amp;rdquo;&lt;/strong&gt; → Claude 会加上 logrotate 逻辑&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;帮我加一个 Web 面板，显示最近 24 小时的监控数据&amp;rdquo;&lt;/strong&gt; → Claude 会生成一个简单的 HTML 页面&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这就是 AI 加持的威力——你提需求，AI 写代码，你只需要复制粘贴。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="效果展示"&gt;效果展示
&lt;/h2&gt;&lt;p&gt;当 VPS 出现异常时，你会在 Telegram 收到类似这样的消息：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;⚠️ VPS 告警: CPU 使用率过高: 92.3% (阈值: 80%)
⚠️ VPS 告警: 磁盘使用率过高: 95% (阈值: 90%)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;日志文件 &lt;code&gt;/var/log/vps_monitor.log&lt;/code&gt; 会记录每次检查的状态：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[2026-06-01 10:00:01] === VPS Monitor Run ===
[2026-06-01 10:00:01] CPU: 23.5%
[2026-06-01 10:00:01] Memory: 67.2%
[2026-06-01 10:00:01] Disk: 45%
[2026-06-01 10:00:01] Traffic (since boot): 12.34 GB
[2026-06-01 10:00:01] === Monitor Complete ===
&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;
&lt;h2 id="进阶玩法让-ai-帮你继续扩展"&gt;进阶玩法（让 AI 帮你继续扩展）
&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;需求&lt;/th&gt;
 &lt;th&gt;Claude Prompt&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;加上 SSL 证书过期检测&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;帮我加一个函数，检查 /etc/letsencrypt 下的证书是否 7 天内过期&amp;rdquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;加上 Web 面板&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;帮我用 Python Flask 写一个监控面板，显示 CPU/内存/磁盘的实时图表&amp;rdquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;加上自动重启&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;如果 nginx 挂了，自动重启并在日志中记录&amp;rdquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;加上备份功能&lt;/td&gt;
 &lt;td&gt;&amp;ldquo;每天凌晨 3 点自动备份 /var/www 到 Google Drive&amp;rdquo;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;AI 的价值不在于它写得多完美，而在于它让不会写代码的人也能实现复杂的自动化。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="faq"&gt;FAQ
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Q: 这个脚本会消耗多少 VPS 资源？&lt;/strong&gt;
A: 几乎可以忽略不计。每次执行只运行几秒，CPU 占用 &amp;lt;1%。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q: 除了 Telegram，还能用其他方式告警吗？&lt;/strong&gt;
A: 可以。让 Claude 帮你改成 Email（用 mailutils）、Slack Webhook、Discord Webhook 等。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q: 能监控多台 VPS 吗？&lt;/strong&gt;
A: 可以。在每台 VPS 上部署脚本，用同一个 Telegram Bot，通过不同的 Chat ID 区分。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q: 我完全不会 Linux，能搞定吗？&lt;/strong&gt;
A: 能。只需要会 SSH 登录和复制粘贴命令。Claude 会给你完整的命令，你按顺序执行就行。&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Disclaimer: Some links are affiliate links. We may earn a commission at no extra cost to you.&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>