知识

清除日志记录怎么清除

时间:2010-12-5 17:23:32  作者:综合   来源:休闲  查看:  评论:0
内容摘要:我见过最离谱的一次日志清理,是朋友把公司服务器上的 /var/log 目录整个删了。系统没崩,但监控全瞎了,安全审计的时候翻不出任何记录,最后写了三千字检讨。别学他。 日志这东西,平时没人看,真要查的

我见过最离谱的清除清除一次日志清理,是日志朋友把公司服务器上的 /var/log 目录整个删了。系统没崩,记录但监控全瞎了,清除清除安全审计的日志时候翻不出任何记录,最后写了三千字检讨。记录别学他。清除清除

日志这东西,日志平时没人看,记录真要查的清除清除时候恨不得它记到秒。但磁盘就那么大,日志日志文件能膨胀到几个GB,记录你不清它,清除清除它就把你的日志磁盘塞满,然后服务直接宕机。记录所以清理日志不是懒不懒的问题,是保命。

先分清你在哪台机器上。Windows和Linux完全是两套玩法。

Linux下最粗暴的方式,rm -rf /var/log/*.log 这种命令我劝你少碰。删了文件,进程还握着文件描述符,磁盘空间根本不会释放,你看着文件没了,实际上空间被占着,重启服务才能还给你。更坑的是,某些服务(比如rsyslog)删了日志文件后不会自动重建,你得手动 touch 一个同名的空文件,不然服务直接罢工或者写不进日志。

正经做法是 logrotate。这工具大多数Linux发行版都自带,配置在 /etc/logrotate.conf 和 /etc/logrotate.d/ 下面。它按天、按大小轮转日志,压缩旧文件,保留指定份数,多余的自动删。比如nginx的日志,你配个 daily、rotate 7、compress,七天前的日志自动打包成.gz,八天前的直接消失。这活儿本该是运维干的,但如果你是自己管服务器,花十分钟配一下,一劳永逸。

Windows那边更隐蔽。事件查看器里的日志——应用程序、安全、Setup、系统——默认最大容量也就20MB,满了之后老日志直接被覆盖。你想手动清,得用管理员权限打开事件查看器,右键对应日志类别,选“清除日志”。但这里有个坑:安全日志是审计用的,你把它清了,某些合规要求下等于销毁证据。所以Windows上我更推荐用 wevtutil 命令行工具。比如 wevtutil cl Application 清应用程序日志,wevtutil cl Security 清安全日志。写个批处理脚本,定时跑一下,比鼠标点来点去靠谱。

还有个细节,很多人忽略。应用自己的日志,比如Java的 logs/ 目录,Python的 logging 模块输出,这些不走系统日志,你得单独处理。Java应用通常配合logback或log4j2,配置里都有 maxFileSize 和 maxHistory,设好就行。Python的话,用 RotatingFileHandler,按文件大小切割,保留几个备份文件。

别迷信“清空”这个动作。有时候你需要的不是删掉日志,而是让日志滚动起来。比如 cat /dev/null > /var/log/messages,这招只清空内容,文件还在,进程还在写,磁盘空间立刻释放。比 rm 安全得多。

最后说个反直觉的事。日志清得太干净,下次排查问题你连个线索都没有。我自己的习惯是:系统日志保留30天,业务日志保留15天,安全日志至少留半年。磁盘不够就加盘,或者压缩,别一上来就全删。你永远不知道哪条日志会在半夜救你一命。

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