在 Debian 系统上,“清理 Golang 日志”通常分为几种情况。下面按常见场景给你说明。
先确认你的 Go 程序日志写在哪里,常见位置:
/var/log/yourapp/
/var/log/yourapp.log
~/logs/
查看进程对应的日志路径:
ps aux | grep yourgoapp
删除日志文件
sudo rm -f /var/log/yourgoapp/*.log
清空日志(保留文件)
sudo truncate -s 0 /var/log/yourgoapp.log
或
sudo > /var/log/yourgoapp.log
如果是服务运行的 Go 程序,建议用 logrotate。
创建:
sudo nano /etc/logrotate.d/yourapp
内容示例:
/var/log/yourapp/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
测试:
sudo logrotate -d /etc/logrotate.d/yourapp
sudo logrotate -f /etc/logrotate.d/yourapp
如果 Go 程序是通过 systemd 启动的:
journalctl -u yourapp.service
只保留最近 100MB
sudo journalctl --vacuum-size=100M
只保留最近 7 天
sudo journalctl --vacuum-time=7d
清空某个服务日志
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
如果是想清理 Go 自身的缓存:
go clean -cache
go clean -modcache
❌ 直接 rm -rf /var/log(会破坏系统)
❌ 删除正在写入的日志但不通知进程
如果你能告诉我:
我可以给你更精确的清理命令。