重建 nginx 日志切割

原有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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值