在 Debian 上处理 Golang 应用的日志压缩,其实是个挺常见的需求。方法并不复杂,核心就是用好系统自带的 gzip 命令行工具。下面直接上步骤,跟着操作就行。

先确认一下系统里有没有
gzip。多数 Debian 发行版是预装了的,但万一没有,跑下面这行命令装一下就好:sudo apt-get update sudo apt-get install gzip找到你的 Golang 日志文件。通常它们会乖乖待在
/var/log/myapp目录下(把myapp换成你的应用名),或者就在应用的工作目录里。这个不用多说,你肯定知道。压缩日志文件。假设日志文件名是
myapp.log,直接执行:gzip myapp.log执行后,你会得到一个名为
myapp.log.gz的压缩包,原始文件会被替换掉——这一点要留意。(可选)如果你就是想把原始的未压缩文件删干净,那就在压缩后补一句:
rm myapp.log当然,多数情况下压缩命令已经替你把活儿干了,这步更多是给你一个二次确认的机会。
(可选)想实现自动化?把它加到 cron 里最省心。先打开当前用户的 cron 配置表:
crontab -e然后加一行计划任务。比如每天凌晨1点压缩日志并删除原文件:
0 1 * * * gzip /path/to/your/myapp.log && rm /path/to/your/myapp.log保存退出,系统就会乖乖每天执行了。
这里额外提一嘴:日志文件处理是个细活儿,操作前最好确认你的应用对日志的写入方式——是追加写入还是滚动写入?如果日志正在被应用占用,直接 gzip 可能会出问题,建议配合 logrotate 这类工具来用。另外,删除原始日志前务必确认已经备份或确实不再需要,这个应该不用多强调。