如何在CentOS中清理Golang日志
在CentOS中清理Golang日志,先定位文件,可选停服并备份。清理可删除或清空,推荐使用logrotate每日轮转,保留7天并压缩,实现自动管理,避免磁盘满。
在CentOS上跑Golang服务,时间一长,日志文件难免会像脱缰的野马一样疯长。如果不及时干预,磁盘空间告急只是时间问题。下面这套清理流程,算是运维中的基础操作,但细节上值得讲究一下——尤其是“怎么清、清完怎么管”这两步。

-
先找到日志的老窝
每个Golang应用对日志输出的配置都不一样。有的乖乖写在/var/log/下,有的直接丢在应用的工作目录里。先搞清楚你的日志文件到底在哪儿,这是后续所有操作的前提。 -
停掉应用再动手(可选,但推荐)
如果正在往日志里写数据,你这边删着它那边写,容易出乱子。稳妥的做法是先停服:sudo systemctl stop your-golang-app.service把
your-golang-app.service换成你实际的服务名就好。当然,如果你确认日志文件不会被持续写入,跳过这步也行。 -
顺手做个备份(可选,但建议别省)
日志这东西,平时看着嫌占地方,真要排查线上问题时又恨不得穿越回去找。所以清之前,最好留个底:sudo cp /path/to/your/logfile.log /path/to/backup/logfile.log.bak路径别抄错,大不了事后把备份删掉,也比到时候抓瞎强。
-
清理:删还是清?看场景
这里有两种方式,看你的需求选择:- 彻底删除:
sudo rm /path/to/your/logfile.log,干脆利落,但应用重启后会自动创建新文件。 - 只清空内容:
sudo truncate -s 0 /path/to/your/logfile.log,保留文件本身,把内容置零。某些对文件句柄敏感的场景更推荐后者。
- 彻底删除:
-
重新启动应用
如果之前停了服务,记得把它拉起来:sudo systemctl start your-golang-app.service -
一劳永逸:配置 logrotate
每次手动清显然不是长久之计。CentOS上自带的logrotate工具,就是专门干这个的。新建一个配置文件,比如/etc/logrotate.d/your-golang-app,塞进下面这段:/path/to/your/logfile.log { daily missingok rotate 7 compress notifempty create 0640 root root }意思很直白:每天轮转一次,保留最近7天的日志,超过的自动压缩,空文件不处理,轮转后按指定权限新建文件。
配置好后,可以手动验证一下:sudo logrotate -f /etc/logrotate.conf确认没有报错,后续系统就会自动打理日志的“新陈代谢”了。
当然,每个Golang应用具体的日志路径、轮转周期、保留天数,还得根据实际业务和磁盘容量来微调。如果应用本身有日志管理接口,优先用应用自带的方案;没有的话,logrotate 这套组合拳足够应付绝大多数场景。操作前拿不准的地方,翻翻应用文档或者问清楚再动手,总不会错。


































