Nginx日志切割

   背景:nginx网站日志是记录平常网站访问行为的文件,当网站流量特别大或者运行很长时间时,这个日志文件就会变得很是大,但咱们又要保留日志内容以方便查看故障缘由。那么咱们就须要只保留咱们须要的那部分便可,这就用到了日志切割。咱们能够根据日期,把日志切割成小文件,既方便查看,又方便删除那些没用的信息。nginx

   原理,利用mv命令把access.log日志文件定时移动到某个日志备份文件夹内,而后从新打开日志文件,并从新记录新的日志内容。加上crontab任务计划,即可以定时进行切割。bash

   脚本:ide

#!/bin/bash网站

logs_path="/data1/logs/"日志

logs_PATH="/usr/local/nginx/logs/"进程

mkdir -p  ${logs_path}$(date -d "yesterday" +%Y)/$(date -d "yesterday" +"%m")/crontab

mv ${logs_PATH}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/$(date -d "yesterday" +"%Y%m%d").logip

kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`it

   计划任务:设定为每日0点进行切割(也能够按照其它时间设定计划)
class

crontab -e

0 0 * * * sh /script/logs_cut.sh



附:Nginx信号控制信息

QUIT       从容关闭            

TERM,INT     快速关闭             

HUP        从容关闭旧的进程并启用新的进程

USR1       从新打开日志文件

USR2       平滑升级可执行程序

WINCH      从容关闭工做进程

用法:kill -信号类型(HUP|TERM|QUIT) `cat /usr/local/nginx/nginx.pid`

相关文章
相关标签/搜索