原有nginx日志太大,没法按日期删除,重新配置分割
1. 对原有日志重命名
mv /usr/local/nginx/logs/access.log /usr/local/nginx/logs/access.log1
mv /usr/local/nginx/logs/error.log /usr/local/nginx/logs/error.log1
2. 日志重新生成
nginx -s reopen
3. 在临时的大文件夹 /data/ssss/ 中,做日志分割操作
rm -rf /data/ssss/*
awk -F'[ ]' '{ date = $1; sub(/\//, "", date); sub(/\//, "", date); sub(/\[/, "", date); print $0 >> "/data/ssss/error.log-" date}' /usr/local/nginx/logs/error.log1
awk -F'[ ]' '{split($4, a, ":"); date = a[1]; sub(/\//, "", date); sub(/\//, "", date); sub(/\[/, "", date); print $0 >> "/data/ssss/access.log-" date}' /usr/local/nginx/logs/access.log1
4. 配置日志分割
/etc/logrotate.d 下 新增 nginx 文件,内容如下
/usr/local/nginx/logs/*.log {
daily
# rotate 360
compress
delaycompress
missingok
notifempty
dateext
dateyesterday
dateformat -%Y-%m-%d
create 0664 root root
postrotate
/usr/local/nginx/sbin/nginx -s reopen
endscript
}
5. 把分割的日志软链接到nginx log文件夹
ln -sf /data/ssss /usr/local/nginx/logs/old
默认会自动执行,在 daily 的 crontab 里
cat /etc/cron.daily/logrotate
模拟执行
logrotate -d /etc/logrotate.d/nginx
强制执行
logrotate -vf /etc/logrotate.d/nginx


被折叠的 条评论
为什么被折叠?



