NginxWeb服务器定时切割日志shell脚本

Nginx 定时切割日志

定时切割方式有按月切割、按天切割、按小时切割等。最常用的是按天切割。

Nginx 不支持像Apache一样使用cronolog来轮转日志,但是可以采用以下方式来实现日志文件的切割:

mv /data1/logs/acccess.log /data1/logs/20130423.log

kill -USR1 Nginx主进程号

首先通过mv命令将日志文件重命名为 /data1/logs/20130423.log,然后发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件/data1/logs/access.log.如果nginx.conf配置文件中使用了"pid /usr/local/webserver/nginx/nginx.pid;"指令,指定了pid文件的存放路径,我们可以通过cat 这个pid文件获得Nginx的主进程号,命令如下:

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

如果想每天定时切割日志,还须接触crontab.我们可以写一个按天切割的日志,按年、按月分目录存放日志的shell脚本:

vi /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

#!/bin/bash

#这个脚本须在每天的00:00运行

#Nginx日志文件的存放路径

logs_path="/data1/logs/"

 

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

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

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

 

保存,另外,配置crontab每天凌晨00:00定时执行这个脚本:

chmod 777 cut_nginx_log.sh

crontab -e

输入一下内容并保存:

00 00 * * * /bin/bash /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值