Linux下nginx生成日志自动切割

本文介绍了一种使用Shell脚本自动化切割Nginx访问日志的方法,并将其按日期归档,同时重新启动Nginx以应用新的日志文件。此外,还详细介绍了如何通过Cron计划任务实现每天凌晨自动执行日志切割,以及Nginx的日志格式配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、编辑切割日志的 shell 程序,目录自定

#vi /data/nginx/cut_nginx_log.sh
输入代码:

#!/bin/bash
                       
# This script run at 00:00
                       
function cutAccess()
{
    dir=$1
    newdir="${dir}/$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")"
    suffix=$(date -d "yesterday" +"%Y%m%d")
    mkdir -p $newdir
    mv ${dir}/access.log ${newdir}/access.$suffix.log
}
                       
cutAccess "/home/wwwlogs/www.yourdomain.com/"
cutAccess "/home/wwwlogs/www.yourdomain-1.com/"
cutAccess "/home/wwwlogs/www.yourdomain-2.com/"
                    
# 重启 nginx
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

2、加入定时任务,每天0点自动切割

# crontab -e
0 0 * * * /bin/bash /data/nginx/cut_nginx_log.sh

3、nginx 日志格式

log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
            '$status $body_bytes_sent "$http_referer" '
            '"$http_user_agent" $http_x_forwarded_for';
access_log  /home/wwwlogs/www.yourdomain.com/access.log  access;




转载于:https://my.oschina.net/zhouz/blog/213089

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值