在服务器维护这行干久了,谁没经历过几次手滑?改完配置服务起不来,急着回滚却发现备份文件一堆,名字全是 backup.conf、config_bak 这种,根本分不清哪个是昨天下午三点那个版本。别笑,我同事上周就这么耽误了两小时。
命名不是小事,是救急的关键
配置文件备份不能图省事随手一存。一个清晰的命名规则,能在关键时刻少掉几根头发。我们团队现在统一用“应用名_环境_日期_时间_操作人”的格式,比如:
nginx_prod_20240405_1430_zhangsan.conf
这样一眼就知道这是生产环境的 Nginx 配置,2024年4月5日14点30分由张三备份的。万一出问题,直接按时间线找最近一次稳定版本就行。
带上版本号更稳妥
有些配置改动频繁,光靠时间还不够。比如数据库配置经常调试优化,我们会在后面加个版本序号:
mysql_staging_20240406_1015_lisi_v2.cnf
下次再改,就叫 v3。这样来回切换也清楚,不会搞混哪版调过连接池,哪版试过慢查询日志。
特殊情况标注清楚
有时候备份是为了测试高风险操作,比如升级中间件主版本。这种就得在名字里写明白:
redis_upgrade_to_7.0_20240406_1800_wangwu.conf
哪怕后来忘了删,看到名字也知道这是实验性备份,别随便拿它恢复生产。
脚本自动备份也要规范
用 cron 定时备份的脚本,别偷懒直接用 cp config.conf config_backup.conf。写清楚路径和动态时间:
cp /etc/nginx/nginx.conf /backup/nginx_prod_$(date +\%Y\%m\%d_\%H\%M).conf
加上日期时间变量,每天生成的文件自然有序,查看 ls 列表时按字母排序就是时间顺序。
好习惯不难养成,一开始多打几个字,换来的是出事时不慌。服务器可以重启,但业务停机时间没法倒流。从今天开始,给每个备份文件起个靠谱的名字吧。