服务器上线前,我会过一遍的 12 项检查

不吆 · 2026-11-07

这不是一份「最佳实践大全」,是一张上线前真的会照着过一遍的清单。每一条都对应一次真实的翻车。

系统层

1. 时间与时区 timedatectl 看一眼。时区错不影响写代码,但会让日志、备份文件名、定时任务全部对不上。

2. 磁盘余量 df -h 和 du -sh /var/log。日志打满盘是最常见的「服务莫名其妙挂了」。

3. swap 与内存 小内存机器上,systemd-oomd 会在内存吃紧时直接杀进程。看 dmesg | grep -i oom 比看应用日志更快。

4. 防火墙 三层要分清楚:云安全组、系统防火墙(ufw/firewalld)、应用监听地址。只监听 127.0.0.1 的服务,不需要在防火墙上开端口——这一点经常被搞反。

服务层

5. 进程守护 systemctl is-enabled 要看到 enabled,不只是 active。重启之后活不下来的服务,等于没部署。

6. 日志轮转 journald 默认有上限,但自己写到文件里的日志没有。检查 /etc/logrotate.d/ 或应用内的滚动策略。

7. 健康检查 一个真正的健康检查至少能证明「进程在、数据库连得上」,而不是只看端口有没有监听。

curl -s http://127.0.0.1:3000/api/health   # {"ok":true,"db":"ok"}

8. 优雅退出 收到 SIGTERM 时先停止接收新请求、再合并 WAL、最后关库。没有这一步,重启就可能留下一个需要人工修的数据库。

数据层

9. 备份可用性 「有备份」和「备份能恢复」是两件事。每周至少做一次 --dry-run 校验,每月真恢复一次到临时目录。

10. 恢复顺序 先停服务再换库。热恢复在 WAL 模式下会丢数据,这不是理论风险,是实测会复现的。

11. 异地副本 同盘备份只能防「手滑」,防不了「盘坏」。至少同步一份到另一台机器或对象存储。

安全层

12. 凭据收敛

# 看一眼谁在登录
last -a | head

清单的价值不在于「全」,而在于每次上线都过一遍。真正会出事的,往往是那些「上次没问题的」条目。

不吆的博客

BUYAO / NOTES独立写作 · 持续学习

不吆的博客

在代码、设计与生活之间,记录缓慢而具体的思考。

FIND A NOTE

搜索文章

输入关键词,在全部文章中查找。
按 Ctrl / ⌘ K 随时打开Enter 打开首条结果
–
篇文章
–
条回应
–
个标签
RECENT / 新近

最新文章

长文阅读

BUYAO / JOURNAL

回应
PRIVATE DESK

后台登录

发布、编辑、删除需要登录。访客浏览与留言无需登录。
博客后台使用站长账号;刷题学习账号是另一套身份。

密码经后端加盐哈希校验,浏览器不会保存任何可写凭证。
这里登录的是博客后台,请使用站长账号;刷题属于另一套学习账号,请到 刷题登录页。
WRITING DESK

写一篇新文章

新文章
0 = 默认;1、2、3… 越小越靠前

置顶后会出现在首页「编辑精选」,并排在列表最前。

    只保存选中的标签;搜索结果里没有时,可以在菜单底部新建一个。

    未设置封面
    链接地址(slug)
    发布后地址为 /post/<slug>,可被搜索引擎收录。
    0 字 · 约 1 分钟
    正文插图有三种方式:点「插入图片」、直接把图片拖进编辑框、或粘贴截图。
    从飞书/语雀导出的 Markdown:点「导入 Markdown」把 .md 和图片一起选中(也支持含图片的 .zip),或点「导入文件夹」直接选整个导出目录——图片会上传到本站并自动改好链接;外链图片会尝试抓回本地,抓不到的保留原链接。
    如果正文已经贴好了、只有图片是「图片和附件/xxx.png」这种本地路径:点「修复正文图片」,选中同名的图片文件,会原位替换,不会动你的正文。
    文章保存到本站后端数据库(SQLite)。Ctrl/⌘ + S 也可保存;顶栏「备份」可导出全部数据为 JSON 文件。
    ⌘/Ctrl + S 保存

    站点设置

    标签决定文章怎么被分类和筛选。分组会出现在标签页上(如「技术栈」「设计与生活」);图标/封面图会显示在标签卡和筛选条里。