logrotate –version # 查看是否已安装logrotate
sudo vim /etc/logrotate.d/squid
/var/log/squid/*.log {
daily
rotate 7
compress
missingok
notifempty
delaycompress
sharedscripts
postrotate
/usr/sbin/squid -k rotate 2>/dev/null
endscript
}
这个配置的含义如下:
- /var/log/squid/*.log:这是你想要轮转的日志文件。你应该根据自己的系统和Squid配置来修改这个路径。
- daily:这表示每天进行一次轮转。
- rotate 7:这表示保留最近7天的日志文件。
- compress:这表示压缩旧的日志文件。
- missingok:这表示如果日志文件不存在,那么不会出现错误。
- notifempty:这表示如果日志文件为空,那么不会进行轮转。
- delaycompress : 选项表示,logrotate会等到下一次轮转时才压缩日志文件。这可以防止在Squid还在写日志文件时就对其进行压缩。
- sharedscripts:这表示只运行一次postrotate脚本,而不是每个日志文件都运行一次。
- /usr/sbin/squid -k reconfigure:这是在轮转后运行的命令,用于让Squid重新打开新的日志文件。
- 保存并关闭文件。
现在,logrotate会每天检查/var/log/squid/目录下的日志文件,如果需要,就进行轮转和压缩。你可以通过运行sudo logrotate -d /etc/logrotate.d/squid命令来测试你的配置。
sudo logrotate -d /etc/logrotate.d/squid
这个命令会在调试模式下运行logrotate,这意味着它会显示它会做什么,但实际上并不会做任何事情。这对于检查你的配置是否正确非常有用。
如果你想立即执行日志轮转,你可以使用以下命令:
sudo logrotate -f /etc/logrotate.d/squid
如果定时重启squid
sudo logrotate -f /etc/logrotate.d/squid # 先执行这个