nginx日志文件切割

创建脚本logcut.sh,放到/opt/nginx/sbin下

在windows下编辑,可以把dos转unix格式

#!/bin/bash
## 零点执行该脚本
## Nginx 日志文件所在的目录
LOGS_PATH=/opt/nginx/logs
## 获取昨天的 yyyy-MM-dd
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
## 移动文件
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
## 向 Nginx 主进程发送 USR1 信号。USR1 信号是重新打开日志文件
kill -USR1 $(cat /opt/nginx/logs/nginx.pid)

(注意nginx.pid路径,在nginx.conf里配置)

设置权限,添加可执行

cd /opt/nginx/sbin
chmod 755 logcut.sh


添加到crontab

crontab -e 编辑crontab,添加如下内容

0 0 * * * /bin/bash /opt/nginx/sbin/logcut.sh > /dev/null 2>&1

后面添加的 > /dev/null 2>&1的意义是把消息和错误输出到空设备,不让系统发邮件

crontab -l 查看crontab

参考:

Nginx 日志文件切割
http://www.cnblogs.com/benio/archive/2010/10/13/1849935.html

猜你喜欢

转载自happyqing.iteye.com/blog/2302840