周日晚上快十一点,手机震了一下,Uptime Kuma 的推送:Gitea 挂了,HTTP 502。 我当时躺在床上刷东西,本来想着明天再说,但是又想到这台机子上除了 Gitea 还跑着我的 RSS、一个自己写的书签服务,还有这个博客的评论后端(虽然现在评论已经关了),拖到明天总觉得心里不踏实,就爬起来开了电脑。 机器是年初在某家小厂买的,2 核 2G,40G 的系统盘,Debian 12。便…
寻 Mi 处
寻 Mi 处,记录代码、硬件与兴趣探索。分享博客搭建、网络安全、嵌入式折腾笔记,也收录影音与日常随想,在代码与文字之间寻觅感动与自由
该博客的最新文章
以下文章来自该博客的 RSS 订阅,点击标题前往原文阅读。
-
df 说盘满了,du 加起来却只有一半,那二十多个 G 去哪了 -
脚本手动跑得好好的,放进 crontab 就是不动先说结论的话,这篇其实没什么高深的东西,全是 cron 的基本脾气。但我是真的被它折腾了一个周末,所以还是想写下来,哪天再遇到能少走点弯路。 事情的起因是我想给自己那台小服务器做个像样的备份。之前的做法是想起来了就手动 pg_dump 一下,然后 scp 回家里的电脑,这种"想起来了"的备份,说实话跟没有差不多。上个月有一次手滑把一个库里的表 drop 了,翻了半天发现最近一次备份是四十多天前的…
-
每天几千次爆破登录,我把 SSH 彻底加固了一遍新买的 VPS,装完系统第一次登录,我习惯先看一眼日志。 1 journalctl -u ssh --since "1 hour ago" | grep -c "Failed password" 三百多次。这才开机一个小时。 再看来源,全世界各地,用户名从 root 到 admin 到 oracle 到 test,全都是自动化脚本在扫。 这些尝试基本不可能成功,因为我的密码是随机生成的。…
-
机器越来越多之后,我给每一台都挂上了探针我一直没有正经的监控。 出问题的时候,是我自己发现网站打不开,然后上去看。或者更糟,是朋友告诉我"你博客挂了"。 有几次是证书过期,有一次是数据库满了导致写不进去,还有一次是 nginx 的 worker 全挂了。每一次都是被动发现,中间可能已经挂了好几个小时。 后来在 NodeSeek 上看到有人推荐 Uptime Kuma,说是自托管的监控面板,界面好看,配置简单。我花了一个晚上装起来,…
-
断网之后命令跑到一半没了,我开始认真用 tmux有一次我在服务器上编译一个东西,跑了快四十分钟。中间我去泡了杯茶,回来发现 SSH 断了。 笔记本进了休眠,网络断了。重新连上去,编译进程没了,得从头再来。 那次之后我才开始认真用 tmux。之前也装过,但一直停留在"知道有这么个东西"的阶段,没真正用起来。 它解决什么问题 简单说,tmux 让你的终端会话脱离 SSH 连接存在。 平时你 SSH 上去,开一个 shell,这个 shel…
-
一台工控机连不上外网,我用抓包找到了真正的原因机房里有一台旧工控机,装的是 Debian,跑着一个小采集程序。 它需要把采集到的数据发到公网的一台服务器上。局域网内一切正常,能 ping 通网关,能访问内网的其他机器。但一访问公网就出问题。 现象很奇怪。ping 8.8.8.8 能通,延迟正常。但 curl https://api.example.com 就卡住,一直转圈,最后超时。 能 ping 通说明网络层是好的。curl 不行说明…
-
卸载了向日葵和 ToDesk,我用 Tailscale 连回了家里的电脑我出门在外的时候,经常要连回出租屋里的台式机。 有时候是要跑一个本地才有的编译环境,有时候是要从家里那台机器上拷个文件,有时候纯粹是想用大屏幕看个东西。 最早用的是向日葵,免费版画质一般,而且经常提示"当前为免费通道,画质受限"。后来换了 ToDesk,好一些,但免费版有连接时长限制,一个月四十小时,用超了就得等。 更让我介意的是,这两个软件都要经过它们自己的服务器中转。我不知道我的屏幕画面…
-
写了十几版之后,我的备份脚本终于靠谱了我最早的那个备份脚本只有一行: 1 tar -czf /backup/site-$(date +%F).tar.gz /srv/www 放在 crontab 里,每天跑一次。跑了三个月,我从来没打开看过。 后来有一次我要恢复一个误删的文件,才发现那个目录里堆了九十多个压缩包,最大的一个只有 12 字节。 原因是 /srv/www 下面有个目录权限不对,tar 读不了,直接失败。但因为命令…
-
受够了密码管理器的订阅费,我自己搭了一个我用了三年某密码管理器的付费版。 涨价那次我忍了,从每年三十多美元涨到四十多。去年又涨,我看着账单发了会儿呆,然后打开了它的定价页。 家庭版六个人,一年六十美元。我家里真正会用密码管理器的只有我和我老婆两个人。 那天晚上我就在看有没有自建的方案。Vaultwarden 是第一个跳出来的,因为它的定位很明确,就是 Bitwarden 服务端的轻量实现,用 Rust 写的,官方服务端要好几 G…
-
把一百多 G 的网站数据搬到新服务器,中间没停过服务那台老 VPS 跑了三年,配置早就跟不上了。1 核 2G,40G 硬盘,用到了 78%。新买的机器是 2 核 4G,80G 盘,价格还便宜一点。 换机器这件事,我拖了两个月才动手。不是因为难,是因为怕。上面跑着博客、两个小站、一个数据库、一堆容器,任何一个环节出错都是麻烦。 后来定了个策略,把整个过程拆成几段,每一段都可以单独验证,出问题能退回去。这才敢开始。 先盘点 动手之前先把老机器上…
-
Stack 主题用了半年,这些地方我都改过Stack 这个主题,默认配置出来的样子已经挺好了。我用它就是因为开箱即用,不用折腾。 但用久了总会想改点东西。有些是审美上的,有些是功能上的,有些纯粹是强迫症。 改的时候我一直坚持一个原则,能不碰主题源码就不碰。因为主题是 submodule,你一改,下次更新就冲突。 所以下面的改动,全部通过 Hugo 的覆盖机制实现。要么是配置,要么是在 layouts 下面放同名的文件。 先搞清楚覆…
-
同一个 Hugo 站点,Nginx 配好之后快了一倍我一开始对 Nginx 托管静态站的理解是,把 root 指过去,try_files 写上,就完事了。 确实能跑。但用 Lighthouse 一测,分数不高。用 curl -w 看各阶段耗时,发现时间都花在传输上,服务器处理只占几毫秒。 也就是说,瓶颈不在 Nginx 的逻辑,在它吐数据的方式。 这篇文章记录一下我把这些都调过一遍之后的结果,首屏从一点六秒降到八百毫秒。 先量一下基线 1…
-
带宽一夜之间跑了 40G,原来是有人在爬我的站四月的某天,云厂商发来一条流量预警,说我这个月的出网流量已经用了 80%。 我看了一眼统计,那天从凌晨到早上八点,跑了四十多个 G。平时一整天也就两三个 G。 第一反应是被人盗链了。查了一下 nginx 的 access log,确实有几个 IP 在疯狂请求图片。 但仔细一看,不对。它们请求的不只是图片,还有每一篇文章的 html,每个都带着不同的 UA,请求间隔很均匀,大概两百毫秒一次。这…
-
1G 内存的小机器跑 MariaDB,我把能省的都省了手里有台很便宜的 VPS,1 核 1G,一年一百多块。上面跑着一个小论坛,用户不多,但数据库不能少。 装完 MariaDB 之后,我 free -h 看了一眼,可用内存只剩三百多兆。系统自己占了点,MariaDB 占了将近五百兆。 当时没太在意,觉得还能跑。结果第三天凌晨,机器挂了。 先看是怎么死的 1 journalctl -k --since "yesterday" | grep -…
-
数据库备份这件事,我从手动导出做到全自动我一直觉得备份是件很枯燥的事。 直到有一次,我在服务器上执行了一条 DELETE FROM comments WHERE id > 100,本来想删测试数据,结果忘了自己不在测试库。 那条语句跑完,生产库少了两千多条评论。 我坐在那儿愣了大概十秒钟,然后想起来,昨天晚上的备份还在。 从那次之后,我对备份的态度完全变了。 备份到底要解决什么问题 先说清楚,备份不是"把数据复制一份"这么简…