
干了十年运维,经手过几百台服务器,从个人博客到电商网站,从数据库到K8s集群。见过最惨的一次,是某公司因为一个空格,丢了三天数据。也见过最神的,是某台服务器跑了五年没重启过,稳得像块石头。
后来我老在想:那些从不宕机的服务器,到底凭什么?
配置高?不一定,有的也就2核4G。技术牛?也不一定,维护的人可能就是你和我。
最后我发现,区别不在技术,在习惯。
十个不起眼的日常习惯,日积月累,就成了服务器不崩的秘密。今天全部分享给你,希望你用不上,但万一用上,能救命。
习惯一:每次操作前,先备份(哪怕只是改个配置文件)
有一年我改Nginx配置,想加个重定向规则。手滑,少写了个括号。保存,重载,网站直接502。
我慌吗?不慌。因为改之前我备份了。
bash
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak.$(date +%Y%m%d)
然后 cp .bak 回去,三秒钟恢复。
没备份会怎样?半夜翻历史记录?凭记忆重写?还是边流汗边谷歌?我都经历过。
现在我的习惯是:改任何配置文件之前,先备份。 不管多小的改动,哪怕只是改个注释,也备份。备份文件不占多少空间,但关键时刻能让你睡个安稳觉。
习惯二:监控不是用来看的,是用来盯的
很多人装完Netdata、Zabbix或者Prometheus,配置完告警,然后就扔那儿不管了。等真告警了,才发现看不懂,或者已经晚了。
监控的真正用法是:每天花5分钟看一眼。
不是盯着每个数字,是看趋势。CPU曲线今天比昨天高?磁盘可用空间每周掉多少?error日志里有没有新面孔?
我每天早上的第一件事,就是打开Netdata,把所有服务器扫一遍。哪个进程突然吃CPU了,哪个磁盘快满了,心里有数。
反常识数据:根据某大厂的统计,70%的严重故障在爆发前24小时都有征兆,只是没人看监控。
监控不是保险,是仪表盘。开车的人要一直看仪表盘,不是等灯亮了再看。
习惯三:变更之前,先问自己“回滚方案是什么”
这句话是我第一任领导教的。
每次上线新代码、改配置、升级内核,他都会问一句:“如果炸了,怎么回来?”
答不上来?不准动。
后来我养成了习惯:任何变更,先想回滚。升级前备份,迁移前快照,改配置前写好回滚命令。
有一次升级PHP版本,预发环境跑得好好的,上生产就炸了——某个扩展不兼容。我花了10秒钟切回旧版本,业务没受影响。同事问我怎么这么快,我说:“我动手之前就想好了怎么回来。”
没有回滚方案的变更,就是在赌。服务器不会每次都让你赢。
习惯四:日志定期看,别等出事了再翻
很多人看日志,都是出事以后。其实日志最大的价值,是让你在出事之前发现问题。
我有个习惯:每周一早上,花10分钟翻一遍error.log。 不细看,就扫一眼。
有次发现Nginx日志里频繁出现“upstream timed out”,虽然业务还没感知,但我顺着查下去,发现PHP-FPM的慢日志里有个插件执行了5秒。联系开发优化,问题消弭于无形。
如果等用户投诉再看,那就是事故了。
日志是服务器的日记本,它每天都在写。你天天看,就是天天和服务器聊天。你不看,它憋坏了就给你搞事。
习惯五:密码不要一样,不要用键盘顺序
这事儿说出来都懂,但做到的没几个。
“我密码设得复杂一点,比如P@ssw0rd123,应该没事吧?”
有事。这种密码在黑客的字典里,排前100名。
还有那种键盘顺序的:1qaz2wsx、qwerty123,都是第一批被扫的。
我见过最惨的一次,是某台服务器被爆破,因为密码是123456。黑客进去之后装了个挖矿脚本,CPU跑满,账单直接爆了。
现在我的习惯是:每台机器一个随机密码,用密码管理器存着。 别嫌麻烦,麻烦一次,省心一年。
习惯六:更新之前读更新日志,别直接yum update
这事儿我吃过亏。
某次yum update,顺手把内核也升了。重启之后,网卡驱动没加载,机器起不来但网络不通。还好是测试机,但演示环境第二天要用,吓出一身冷汗。
从那以后,我定了个规矩:任何更新,先看更新日志。 尤其是内核、数据库、Web服务器这种核心组件,必须读release notes,看有没有不兼容变更。
安全补丁可以自动装,功能更新和内核升级,必须手动、分步、可回滚。
反常识观点:不是所有更新都值得做。如果系统跑得稳,非安全更新可以等一个月,看看别人踩坑了再决定。
习惯七:磁盘快满之前动手,别等写不进日志
磁盘满这事儿,特别蠢,但特别常见。
监控告警设置成95%?等到95%的时候,可能只剩几个小时了。万一半夜满的,日志写不进去,服务直接挂。
我的习惯是:监控阈值设成80%,85%就告警。 给自己留出24小时的缓冲时间。
而且定期扫一遍大文件:
bash
du -sh /* 2>/dev/null | sort -hr | head -20
看看是日志没切分,还是哪个程序在疯狂写文件。早发现,早处理。
真实数据:某云厂商统计,10%的宕机原因是磁盘满。这个坑,完全可以避免。
习惯八:重要数据多地备份,且每月测试一次恢复
备份这事儿,前面文章写过很多次。但这里要说的是另一个习惯:测试恢复。
我见过太多人,备份脚本配得漂漂亮亮,每天跑得欢,真出事才发现——备份文件是坏的。
为什么?因为脚本从坏盘读数据,把乱码也备份了。或者备份格式不对,恢复工具不兼容。
现在我的习惯是:每月抽一台机器,完整恢复一次。 把备份文件恢复到测试环境,启动服务,看看能不能跑起来。
花半小时,换一个“真出事能活”的安心。
习惯九:文档写下来,别信自己的记忆力
人脑是会遗忘的,也是会出错的。
三个月前配的iptables规则,为什么要加这一条?半年前的定时任务,是谁加的?明天交接给同事,他怎么知道你这些骚操作?
我的习惯是:任何非标准操作,都写下来。 哪怕只有一句话。
比如:
text
2026.02.15:修改nginx连接数限制,因为被爬虫打了一次,单IP限到5 2026.03.01:添加定时任务每天凌晨3点清理临时文件,脚本在/root/scripts/clean-tmp.sh
不用写得多漂亮,自己能看懂就行。需要的时候,翻一翻,比重新猜快多了。
习惯十:定期给自己放个假,服务器也需要休息
最后这个习惯,可能最不像技术,但我觉得最重要。
有些人特别勤快,天天折腾服务器,今天换个参数,明天装个新工具,后天升级个版本。结果越勤快,出事越多。
服务器这东西,稳定压倒一切。没有必要的变更,就是风险。
我的习惯是:没事别动它。 监控正常,日志正常,业务正常,就别手痒。
而且定期给自己放个假,别24小时盯着监控。机器也需要休息,你也需要。
写在最后
这十个习惯,没有一个是高深的技术。备份、监控、日志、密码、更新、磁盘、文档……都是最基础的事。
但最难的不是知道,是每天都做。
我见过最牛的运维,不是会写多复杂的脚本,而是十年如一日,每天扫一眼监控,每次操作前备份,每个变更都想好回滚。他的服务器,真的很少崩。
服务器这玩意儿,你对它好,它就对你好。不是供着,是养成习惯。
从今天开始,挑一个习惯试试。一个月后,你会感谢自己。




