您现在的位置是:知识 >>正文
清除日志
知识6人已围观
简介凌晨两点十七分,我盯着屏幕上滚动的日志文件,手指悬在键盘上方。那些十六进制的时间戳、HTTP状态码、还有夹在方括号里的IP地址,像一群蚂蚁在黑色背景上爬。服务器已经跑了四百多天,日志攒了十二个G。老板 ...
凌晨两点十七分,清除日志我盯着屏幕上滚动的清除日志日志文件,手指悬在键盘上方。清除日志那些十六进制的清除日志时间戳、HTTP状态码、清除日志还有夹在方括号里的清除日志IP地址,像一群蚂蚁在黑色背景上爬。清除日志服务器已经跑了四百多天,清除日志日志攒了十二个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了。但这条记录留了下来,像一根刺。
我停下手,把那个IP单独拎出来,查了一下。来自一个云服务商,早就被标记为恶意扫描源。我把它加进了iptables的drop列表。然后继续删。
日志里还藏着别的东西。比如某天下午三点,有个爬虫把我的文章全抓了一遍,User-Agent写着 Bytespider。还有一次,某个搜索引擎的蜘蛛卡在了一个分页链接上,连续请求了四百多次同一个URL,状态码全是200。这些细节没人关心,但它们构成了服务器的心跳。
清理到syslog的时候,看到一条内核报错:EXT4-fs error。去年八月的事。那时候硬盘还没换,老盘有坏道。后来换了新盘,错误再没出现过。但这条记录一直留着,像一道旧伤疤。
最后我写了个脚本,每天凌晨四点自动轮转日志,保留七天,压缩归档,超过三十天的直接删。脚本里加了一行 find /var/log -name "*.gz" -mtime +30 -delete。简单粗暴,但管用。
十二个G变成了不到两个G。硬盘一下子空出大半。我盯着 df -h 的输出,使用率从百分之八十七降到了百分之六十二。数字很干净,但我知道,那些被删掉的日志里,有某个IP在凌晨三点试图撬锁的痕迹,有某只蜘蛛迷路的路径,有某块硬盘临终前的呻吟。它们没了。彻底没了。
清理日志这件事,说到底是在选择记住什么、忘掉什么。服务器不会说话,日志是它唯一的日记。删掉容易,但那些被删掉的东西,再也不会回来。
我关掉终端,屏幕暗下去。窗外天快亮了。服务器还在跑,新的日志正在生成。明天凌晨四点,脚本会准时动手。那些新的记录,也会在三十天后消失。循环往复,像什么都没发生过。
Tags:
相关文章
标准话术sbar中a的意思
知识SBAR里的那个A,全称是Assessment,翻译过来叫“评估”。但你要是真把它当成“评估”来用,就废了。我见过太多护士、医生、甚至紧急调度员,在SBAR交接时把A说成一段病情摘要,或者干脆把B背景 ...
【知识】
阅读更多系统漏洞的危害不包括影响正常服务
知识系统漏洞的危害不包括影响正常服务?这话只对了一半 去年某银行核心系统升级,一个看似不起眼的权限校验漏洞被外部触发。结果不是服务宕机,而是用户A的账户凭空多出50万。银行连夜修复,但第二天新闻标题写的是 ...
【知识】
阅读更多网站黑屏怎么解决
知识上个月我同事老张的电脑屏幕突然一片漆黑,光标还能动,桌面图标却全没了。他第一反应是重启,结果开机后依然黑屏,只看得见鼠标箭头在深色背景上孤独地晃动。这场景太熟悉了——不是显示器坏了,是系统资源管理器崩 ...
【知识】
阅读更多