您的位置:首页 > 运维架构 > Nginx

nginx 日志切割配置

2017-04-22 18:50 369 查看
最近由于业务需求,需要搭建一个nginx集群管理,所以顺便学习一下nginx的日志切割功能的配置与实现,记录一下,以下内容亲测有效,所有涉及到的路径,需要根据自身情况进行设定,其他内容可直接使用;

1.首先,配置conf/nginx.conf文件,以配置的虚拟主机为例,代码如下

server {

listen  80;

server_name  www.hello.com;

location / {

root   /usr/nginx/data/www;

index  index.html;

}

access_log  /logs/xingyun.access.log  main;

}

注意:配置好以上代码后,需要将该配置文件中 main 被注释掉的代码注释去掉,否则重启nginx会出现错误

2.其次得搭建好nginx服务器,然后创建一个runlog.sh文件,编辑内容如下

#!/bin/bash

#该路径存放每天产生的log文件的位置

LOGPATH=/usr/nginx/logs/xingyun.access.log

#按照月份存放日志

BASEPATH=/data/$(date -d yesterday +%Y%m)

#创建日志存放位置

mkdir -p $BASEPATH

#创建切割好的日志文件的名字

bak=$BASEPATH/$(date -d yesterday +%d%H%M).xingyun.access.log

#将每天产生的日志文件移动到BASEPATH下面

mv  $LOGPATH  $bak

#移动完成以后在创建一个新的存放新产生的日志文件

touch $LOGPATH

#执行完以上操作以后,重新启动nginx

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

3.设置定时任务,由于是测试,所以设定为每一分钟执行一次,定时任务代码如下

#进入定时任务编辑文件

crontab -e  

#设定定时任务

*/1 * * * * sh /usr/nginx/runlog.sh

通过以上三步操作,即可完成日志切割管理;切记:以上所有涉及到路径的内容,大家一定要按照自己的实际情况进行设置,否则不能狗成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息