ningx访问日志切割

Nginx访问日志默认是在一个文件内一直追加,如此方式不利于时间段内的访问记录查询,大文件的读写资源开销可大,所以一般会采用按天把日志切割开来,用Linux的计划任务来操作任务。

  1. 设置Linux计划任务,首页执行
    [root@iZ25gef96i2Z ~]# crontab -e
    

      在任务列表中添加:

    55 23 * * * /root/cmd/split_log.sh
    

      

  2. 编写切割日志的shell脚本split_log.sh,内容为:
    ## Nginx 日志文件所在的目录
    LOGS_PATH=/home/wwwlogs
    ## 获取昨天的 yyyy-MM-dd
    YESTERDAY=$(date  +"%Y%m%d" -d  "-24hour")
    ## 移动文件
    mv ${LOGS_PATH}/yulinapp.com.log ${LOGS_PATH}/history/access_${YESTERDAY}.log
    ## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
    kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
    

      注意split_log.sh的路径,样例脚本是放到了/home/wwwlogs/history/下。

posted @ 2018-04-25 09:14  西风行  阅读(140)  评论(0编辑  收藏  举报