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

nginx日志文件切割

2017-09-18 15:01 302 查看
偶然发现nginx access.log已经有30G了 (工作失误,忘记切割了)所以将其切割。

以天为单位进行切割。

shell代码:

vim /etc/shell/cut_nginx.sh

#!/bin/bash
LOGS_PATH=/usr/local/webserver/nginx/logs
YESTERDAT=$(date -d "yesterday" +%Y%m%d)
tar zcf ${LOGS_PATH}/error_${YESTERDAT}.gz ${LOGS_PATH}/error.log
tar zcf ${LOGS_PATH}/access_${YESTERDAT}.gz ${LOGS_PATH}/access.log
rm -rf ${LOGS_PATH}/error.log ${LOGS_PATH}/access.log
kill -USR1 `ps axu |grep "nginx: master process" |grep -v grep | awk '{print $2}'`
cd ${LOGS_PATH}
find . -mtime +10 -name "*20[1-9][3-9]*" | xargs rm -f
exit 0
 
写个计划任务 crontab -e

1 0 * * * root /etc/shell/cut_nginx.sh  每天0点1分执行脚本

使脚本生效 service crond reload

LOGS_PATH变量记录nginx日志存放位置

YESTERDAT变量生成昨天时间

第二天0点1分把access.log和error.log打包为以昨天时间为名的tar包

kill -USR1 生成新的错误和访问日志文件

日志文件保留10天 可根据需求自行更改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: