休闲

日志清除

时间:2010-12-5 17:23:32  作者:热点   来源:热点  查看:  评论:0
内容摘要:凌晨两点十七分,我按下回车键,屏幕上那行“rm -rf /var/log/*”瞬间吞噬了三百四十二个文件。机房风扇的嗡鸣声突然变得刺耳,像某种无声的审判。 这不是我第一次干这种事。上个月帮朋友处理一台

凌晨两点十七分,日志清除我按下回车键,日志清除屏幕上那行“rm -rf /var/log/*”瞬间吞噬了三百四十二个文件。日志清除机房风扇的日志清除嗡鸣声突然变得刺耳,像某种无声的日志清除审判。

这不是日志清除我第一次干这种事。上个月帮朋友处理一台被入侵的日志清除服务器,日志里密密麻麻的日志清除暴力破解记录看得人头皮发麻。每秒钟十七次SSH尝试,日志清除来自全球四十多个IP,日志清除用户名从admin到test再到oracle,日志清除像一群饿疯了的日志清除蚂蚁在啃食一道裂缝。我花了四十分钟分析攻击模式,日志清除又用二十分钟确认入侵者没留下后门,日志清除最后三秒钟清空了所有日志。日志清除朋友问为什么不留着当证据,我说你连防火墙都没装,留着这些记录除了占地方还能干嘛。

但这次不一样。这台服务器是我自己的,日志里躺着过去八个月的全部操作轨迹。有凌晨三点部署失败的Kubernetes集群,有误删数据库后的紧急恢复记录,还有去年冬天某个深夜调试Nginx配置时留下的三十七次重启。每一条记录都像考古地层里的陶片,拼凑出一个运维人员与机器搏斗的完整现场。

清除日志这件事,表面上是清理磁盘空间,实际上是在抹除时间。Linux系统里,日志文件默认存放在/var/log目录下,syslog记录系统事件,auth.log保存认证信息,nginx的access.log则忠实刻录每一次HTTP请求。这些文本文件用最朴素的方式对抗着熵增定律——它们记录混乱,然后被更大的混乱吞没。

我见过最极端的例子是一家创业公司的技术负责人。他每周五下午定时执行日志轮转脚本,把超过七天的日志全部压缩归档到冷存储。有次服务器遭遇勒索软件攻击,加密进程在凌晨四点启动,而他的轮转脚本恰好在四点零三分运行,把加密前的最后一批日志打包转移了。事后溯源时,那批日志成了唯一能证明攻击入口的证据。他后来跟我说,那一刻他觉得自己像个在洪水来临前抢运文物的保管员。

不过大多数时候,日志清除没那么戏剧性。更多是磁盘告警后的例行公事,或者迁移服务器时的顺手清理。我认识一个运维老手,他有个奇怪的习惯:每次清除日志前,会随机抽取十条记录截图保存。问他为什么,他说这些碎片将来可能有用。“就像你整理旧物时翻到一张超市小票,上面印着三年前某个下午买的一瓶水和一包烟,你会突然想起那天发生了什么。”

这个习惯我学了一半。现在我的做法是,清除前用grep过滤出包含“error”“fail”“critical”的行,单独存成一个小文件。剩下的正常日志,该删就删。毕竟机器和人一样,不需要记住每一次呼吸,但得记住每一次呛水。

刚才我检查了那三百四十二个文件的内容。八个月里,系统重启过十九次,服务崩溃过七次,磁盘写满过三次。最频繁的错误是“connection refused”,出现了两千四百多次,来自一个我早就忘记的测试脚本。最孤独的记录是去年除夕夜,只有一条“systemd: Started Daily apt download activities”,那是整个服务器在漫漫长夜里唯一的心跳。

现在这些都没了。df -h显示根分区释放了2.3G空间,可用率从67%回到了81%。屏幕上的光标还在闪烁,像什么都没发生过。我倒了杯水,突然想到一个问题:如果日志能记录一切,那清除日志这个动作本身,会被记录在哪里?

答案是wtmp和btmp文件。它们记录用户登录和失败尝试,而且默认不会被rm -rf /var/log/*删掉,因为系统把它们锁定了。你看,连Linux都知道,有些事可以忘,有些事必须留着。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap