发布于2026-06-30 阅读(0)
扫一扫,手机访问
在 CentOS 上管理 Golang 应用的日志,最省心也最规范的做法,就是借助系统自带的 logrotate。它能自动完成日志的切割、压缩和清理,省去自己写脚本的麻烦。下面直接上操作步骤,每一步都有具体说明。

安装 logrotate
如果你的 CentOS 系统里还没装这个工具,一条命令就能搞定:
sudo yum install logrotate
装完之后,它默认会在每天早上自动运行一次,检查所有配置过的日志文件。
创建或编辑配置文件
logrotate 的配置文件统一放在 /etc/logrotate.d/ 目录下,每个应用一个文件,互不干扰。假设你的 Golang 程序叫 myapp,那就创建一个同名文件:
sudo vi /etc/logrotate.d/myapp
写入核心配置
在打开的文件里,贴入下面这段配置(注意把路径换成你自己应用的日志目录):
/path/to/your/logs/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root root
}
每一行的含义非常直观:
daily —— 每天执行一次日志切割,你也可以改成 weekly 或 monthly,但日常运维按天最常用。missingok —— 如果日志文件不存在,直接跳过,不报错。这对刚部署的新应用很友好。rotate 7 —— 保留最近 7 个压缩后的历史日志文件,更早的自动删除。compress —— 对旧日志进行 gzip 压缩,大幅节省磁盘空间。notifempty —— 当天的日志文件为空时,不执行切割和压缩,避免产生多余的空压缩包。create 0640 root root —— 切割后新建一个同名日志文件,权限设为 0640,属主和属组都是 root。权限值可以根据你的场景调整。测试配置是否生效
配置写完了,建议先用下面这条命令强制跑一次,检查有没有语法错误或路径问题:
sudo logrotate -f /etc/logrotate.d/myapp
参数 -f 表示强制执行。如果终端没有报错,说明配置正常;如果提示文件不存在或权限不对,可以根据错误信息调整。
确认自动运行
logrotate 的定时任务由系统 cron 管理,通常已经配置好。你可以检查一下状态文件 /var/lib/logrotate/status,里面记录了每个日志文件最后一次被处理的时间。只要看到你配置的日志路径出现在里面,就说明自动任务已经接管了。
到这里,整个日志压缩方案就落地了。以后 Golang 应用写出来的日志,每天凌晨会被自动切割、压缩,同时保留最近一周的历史,既不丢数据,也不占冤枉空间。一套配置,长期受益。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8