清除日志
凌晨两点十七分,清除日志我盯着屏幕上滚动的清除日志日志文件,手指悬在键盘上方。清除日志那些十六进制的清除日志时间戳、HTTP状态码、清除日志还有夹在方括号里的清除日志IP地址,像一群蚂蚁在黑色背景上爬。清除日志服务器已经跑了四百多天,清除日志日志攒了十二个G。清除日志老板说硬盘快满了,清除日志让我“清理一下”。清除日志 清理日志这件事,清除日志听起来像倒垃圾。清除日志真动手才知道,清除日志每一行都带着体温。清除日志 我先用 这些日志没人看。它们只是躺在那里,像仓库角落里积灰的档案盒。但真删的时候,我犹豫了。 用 删到一半,发现一个叫 我停下手,把那个IP单独拎出来,查了一下。来自一个云服务商,早就被标记为恶意扫描源。我把它加进了iptables的drop列表。然后继续删。 日志里还藏着别的东西。比如某天下午三点,有个爬虫把我的文章全抓了一遍,User-Agent写着 清理到syslog的时候,看到一条内核报错: 最后我写了个脚本,每天凌晨四点自动轮转日志,保留七天,压缩归档,超过三十天的直接删。脚本里加了一行 十二个G变成了不到两个G。硬盘一下子空出大半。我盯着 清理日志这件事,说到底是在选择记住什么、忘掉什么。服务器不会说话,日志是它唯一的日记。删掉容易,但那些被删掉的东西,再也不会回来。 我关掉终端,屏幕暗下去。窗外天快亮了。服务器还在跑,新的日志正在生成。明天凌晨四点,脚本会准时动手。那些新的记录,也会在三十天后消失。循环往复,像什么都没发生过。du -sh /var/log/* 扫了一遍。nginx的访问日志占了大头,七个G。syslog也不小,两个多G。还有一堆乱七八糟的,什么auth.log、kern.log、dpkg.log。最离谱的是有个叫 btmp 的文件,一点八个G,专门记录失败的登录尝试。我打开看了一眼,密密麻麻全是SSH爆破记录,来自全球各地。俄罗斯的、巴西的、越南的,IP段换得比翻书还快。有一行写着 Failed password for root,时间戳是去年三月十四号凌晨三点。那天我在睡觉,服务器在被人撬锁。truncate -s 0 清空文件是最快的,保留inode,不释放磁盘空间,但文件内容瞬间归零。或者用 logrotate 做归档压缩,把旧的日志打成 .gz,留个念想。我选了后者,但只保留了最近三十天的。剩下的,rm -f,直接送走。access.log.1 的文件,里面有一行特别扎眼:GET /wp-login.php HTTP/1.1" 404。请求来自一个我从来没听说过的User-Agent,时间戳是去年双十一。那天我在购物车里加了一堆东西,这个IP在试图猜我的后台密码。它没成功,404了。但这条记录留了下来,像一根刺。Bytespider。还有一次,某个搜索引擎的蜘蛛卡在了一个分页链接上,连续请求了四百多次同一个URL,状态码全是200。这些细节没人关心,但它们构成了服务器的心跳。EXT4-fs error。去年八月的事。那时候硬盘还没换,老盘有坏道。后来换了新盘,错误再没出现过。但这条记录一直留着,像一道旧伤疤。find /var/log -name "*.gz" -mtime +30 -delete。简单粗暴,但管用。df -h 的输出,使用率从百分之八十七降到了百分之六十二。数字很干净,但我知道,那些被删掉的日志里,有某个IP在凌晨三点试图撬锁的痕迹,有某只蜘蛛迷路的路径,有某块硬盘临终前的呻吟。它们没了。彻底没了。
- 随机阅读
- 搜索
-
- 友情链接
-