改 nginx.conf 之前顺手复制了一份,命名 nginx.conf.bak。两周后配置出问题,翻目录发现三个 bak,分不清哪个是线上正在用的。

bak 就是 backup 的缩写

它只是文件名习惯,不是一种格式。内容完全取决于原文件,文本、二进制、数据库备份都有可能。软件升级前自动留一份、编辑器保存时生成副本、系统还原点,都会带上这个后缀。看到 .bak 先别急着打开,先看它原来是什么。

常见的几种来源

  • 编辑器:vim 的备份文件常以波浪号结尾,VS Code 有本地历史
  • 系统:Windows 更新和驱动安装会留 .bak 目录
  • 数据库:SQL Server 的整库备份就是 .bak
  • 网络设备:路由器、交换机导出配置常带日期和 bak

怎么打开和还原

文本配置直接改后缀用编辑器看;SQL Server 的 .bak 要用 RESTORE DATABASE 语句还原,不能当压缩包解。不确定内容时先复制一份再动,原文件别覆盖。二进制文件强行用文本编辑器打开,保存一次就废了。

RESTORE DATABASE test FROM DISK = "D:/backup/test.bak"

怎么判断哪个是最新的

看修改时间和文件大小,再看内容里的版本号或日期。nginx 配置可以用 nginx -t -c 指定文件做语法检查,别直接覆盖线上再 reload。数据库备份还要看是否完整,文件大小明显偏小就是没备完。

比 bak 更靠谱的做法

备份名带上日期和版本,比如 nginx.conf.20261026,别都叫 .bak。重要配置放进 git,改了什么一目了然,还能回滚。临时备份定期清理,别让目录里堆几十个同名文件。

数据库备份要试还原

SQL Server 的 .bak 每月做一次还原演练,RESTORE VERIFYONLY 只查文件头,不能证明数据可用。还原到测试库跑一遍查询,才算真的备成功。备份文件和原库别放同一块盘。

.bak 只是提醒,不是保障。真要能回滚,得有版本和日期,而不是一个后缀。