服务器跑久了,日志文件越来越大,不仅占空间,查看起来也费劲。这时候就得靠日志轮转来帮忙整理归档。虽然大多数系统都配置了自动轮转,但有时候你想马上清理一下,或者调试配置是否生效,就得手动执行轮转命令。
常见的日志轮转工具
Linux 系统里最常用的日志轮转工具是 logrotate。它配合配置文件管理各类服务的日志,比如 Nginx、Apache、MySQL 等。默认情况下,它由 cron 每天自动运行一次,但我们也可以随时手动触发。
如何手动执行日志轮转
直接在终端输入以下命令:
sudo logrotate -f /etc/logrotate.conf
这个命令会强制(-f 表示 force)按照全局配置文件执行所有日志的轮转。适合你想一次性处理全部服务的情况。
如果你只想处理某个特定服务,比如只轮转 Nginx 的访问日志,可以指定它的单独配置文件:
sudo logrotate -f /etc/logrotate.d/nginx
这样就不会影响其他服务,更精准,也更安全。
验证轮转是否成功
执行完命令后,去日志目录看看效果。比如 Nginx 默认日志路径是 /var/log/nginx/,执行前可能看到一个巨大的 access.log,执行后它会被重命名为 access.log.1,同时生成新的空文件 access.log。
你还可以加 -v 参数查看详细过程:
sudo logrotate -fv /etc/logrotate.d/nginx
加上 -v 后,命令会输出每一步的操作,方便你确认哪些文件被处理了,有没有报错。
小贴士:别忘了权限问题
手动执行时一定要用 sudo,因为日志文件通常属于 root 或特定服务用户,普通用户没有读写权限。漏了 sudo 会导致权限拒绝,轮转失败。
另外,如果发现轮转后旧日志没压缩,检查配置里是否有 compress 选项。想跳过压缩可以直接加 nocompress,但一般不建议,毕竟压缩能省不少空间。
就像家里定期收拾抽屉,系统日志也需要及时整理。掌握这条命令,关键时刻不用等第二天自动任务,立马让日志井井有条。