前言
logrotate 可以帮助我们进行日志切割,搭配 cron 服务,就可以自动的进行轮转
logrotate 版本更新
确保 logrotate 支持小时级别的管理,替换/usr/sbin/logrotate,并附加x权限,我这里有一个二进制版本logrotate
或者也可以直接去 github 上拉取https://github.com/logrotate/logrotate
添加 logrotate 配置
# 添加所需切割的日志配置
cat > /etc/logrotate.d/nginx << 'EOF'
/usr/local/nginx/logs/access.log { # 定义日志位置
hourly # 按照小时切割
rotate 2 # 最多保留两份切割日志
missingok
nocompress
sharedscripts
postrotate
/bin/kill -USR1 `cat /usr/local/nginx/logs/nginx.pid 2>/dev/null` 2>/dev/null || true
endscript
}
EOF
添加 crontab 配置
# 添加logrotate执行脚本
cp /etc/cron.daily/logrotate /etc/cron.hourly/
重载 crond 服务
systemctl reload crond