<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Uptime Kuma on JiangYM's Blog</title><link>https://jiangym.top/tags/uptime-kuma/</link><description>Recent content from JiangYM's Blog</description><generator>Hugo</generator><language>zh-cn</language><managingEditor>xxx@example.com (JiangYM)</managingEditor><webMaster>xxx@example.com (JiangYM)</webMaster><copyright>本博客所有文章除特别声明外，均采用 BY-NC-SA 许可协议。转载请注明出处！</copyright><lastBuildDate>Tue, 01 Sep 2026 10:10:00 +0800</lastBuildDate><atom:link href="https://jiangym.top/tags/uptime-kuma/index.xml" rel="self" type="application/rss+xml"/><item><title>1核1G小鸡跑监控：Uptime Kuma 一小时折腾实录</title><link>https://jiangym.top/post/uptime-kuma-backup-tinkering/</link><pubDate>Tue, 01 Sep 2026 10:10:00 +0800</pubDate><author>xxx@example.com (JiangYM)</author><guid>https://jiangym.top/post/uptime-kuma-backup-tinkering/</guid><description>
<![CDATA[<h1>1核1G小鸡跑监控：Uptime Kuma 一小时折腾实录</h1><p>作者：JiangYM（xxx@example.com）</p>
        
          <p>我之前写过一篇自托管踩坑的文章，里面立了个 flag：备份这事，等硬盘炸了再说。结果 flag 这东西就是这么灵，上周博客静态文件那边手滑误删了一小部分，虽然 Hugo 重新 build 一遍就恢复了，但这个教训足够清晰。今天顺便把监控和备份一起补上，记录一下过程。</p>
<h2 id="为什么是-uptime-kuma">
<a class="header-anchor" href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e6%98%af-uptime-kuma"></a>
为什么是 Uptime Kuma
</h2><p>先说监控。需求很简单：博客挂了我要第一时间知道，而不是第二天早上自己刷新才发现。市面上的方案要么收费，要么对 1 核 1.9G 的小鸡来说太重。Uptime Kuma 是个开源的监控面板，功能上刚好够用：HTTP 监控、证书到期提醒、宕机告警，这些都有。</p>
<p>装的过程就不细说了，它官方支持直接跑 Node，也可以拉 Docker 镜像，我这种已经把 Docker 卸了的服务器当然选前者。配置就是加一条 HTTP 监控指向博客域名，再设一个检测间隔。资源占用比我预想的低，跑起来之后看了眼内存，多占了一百多兆，可以接受。</p>
<p>告警我接的是 Telegram 机器人，挂了会推消息过来。测试的时候手动把 nginx 停了，几十秒后手机就震了，链路是通的。</p>
<h2 id="自动备份终于">
<a class="header-anchor" href="#%e8%87%aa%e5%8a%a8%e5%a4%87%e4%bb%bd%e7%bb%88%e4%ba%8e"></a>
自动备份，终于
</h2><p>监控有了，再看备份。之前一直是手动 tar 关键目录扔对象存储，这次写了个脚本，用 crontab 每天凌晨自动跑。逻辑很简单：</p>
<ol>
<li>tar 打包 <code>/opt/hugo-blog</code> 的内容源目录（文章、主题、配置）</li>
<li>按日期命名，扔到对象存储</li>
<li>只保留最近 7 份，防止存储爆掉</li>
</ol>
<p>写完手动跑了一遍，几十秒，生成了备份包并正常上传。然后加进 crontab，第二天早上收到通知确认任务跑过，这事儿才算落地。拖了快一年的东西，实际动手也就一小时。</p>
<p>这里有个小坑提醒下：crontab 里的脚本一定要用绝对路径，我第一版用了相对路径，手动跑没问题，挂到 cron 上就找不到目录了。这种坑每个玩过 cron 的人都踩过，但我还是踩了。</p>
<h2 id="顺便说说感受">
<a class="header-anchor" href="#%e9%a1%ba%e4%be%bf%e8%af%b4%e8%af%b4%e6%84%9f%e5%8f%97"></a>
顺便说说感受
</h2><p>折腾完之后有种&quot;早干嘛去了&quot;的感觉。这两件事单独看都不难，加起来一个多小时，但就是因为不难，才一直拖着。人的心理就是这样，事情越小越容易觉得&quot;随时都能做&quot;，然后无限期往后推。</p>
<p>另外给同样玩小鸡的朋友一个建议：监控和备份这两件事，优先级高于你博客上任何新功能。我见过太多人给博客加花里胡哨的东西，结果哪天服务器炸了，连数据都找不回来。先保证活着，再谈生活。</p>
<p>后面打算把备份再加个异地容灾，比如在家里的 NAS 上也放一份。不过按我的拖延症，这个估计又得拖到下次硬盘出问题。就这样，flag 已立。</p>
        
        <hr><p>本文2026-09-01首发于<a href='https://jiangym.top/'>JiangYM's Blog</a>，最后修改于2026-09-01</p>]]></description><category>技术</category></item></channel></rss>