Nginx日志文件的切割

生产环境下的服务器日志太大会影响服务器效率,所以需要对日志文件进行定时切割。可以按年切割,按月切割,按日切割,按小时切割等等。一般按天切割,每个月的日志也很大所以按月切割可以用在日志量较小的情况。

这里使用的是 Nginx的信号USR1来对日志进行切割。


# mv   /data1/logs/access.log   /data1/logs/20160429.log

# kill  -USR1  Nginx主进程号  或者  kill  -USR1   `cat /usr/local/nginx/logs/nginx.pid`

除了上面的命令,如果想每天定时切割日志,还需要借助crontab.  写一个shell脚本:


#!/bin/bash

logs_path="/data1/logs/"

mkdir -p ${logs_path}$(date -d "yesterday"  +"%Y")/$(date -d "yesterday"  +"%m")/          //建立一个年和月的文件夹,来分离每年和每月

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

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


这是脚本内容,然后使用crontab每天凌晨00:00定时执行这个脚本:

crontab  -e



SHELL小知识:  $变量名  或者  ${变量名}    这两种形式来表示一个变量

                            · 命令 ·   或者   $(命令)       这两种形式来执行一个命令

mkdir  -p 递归创建目录

你可能感兴趣的:(linux,nginx)