栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

nginx日志切割/分割,按天生成&定期删除日志

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

nginx日志切割/分割,按天生成&定期删除日志

#!/bin/bash

LOG_PATH=/usr/local/nginx/logs
YESTERDAY=`date -d yesterday +%Y-%m-%d`
PID_PATH=/usr/local/nginx/logs/nginx.pid
mv $LOG_PATH/access.log $LOG_PATH/access-$YESTERDAY.log
[ ! -f $PID_PATH ] || kill -USR1 `cat $PID_PATH`
find $LOG_PATH/* -name "*.log" -type f -mtime +7 -exec rm -rf {} ;
添加定时任务
00 00 * * * /bin/sh  /usr/local/nginx/logs/log.sh
1、做一个日志分割脚本文件:
vi /data/svr/nginx/sbin/nginx_cutlog.sh
#!/bin/bash
#nginx日志分割脚本:
#crontab,需要root下设置: 0 0 * * * /data/svr/nginx/sbin/nginx_cutlog.sh
#设置日志文件存放目录
LOG_HOME="/data/svr/nginx/logs/"
#备分文件名称
LOG_PATH_BAK="$(date -d yesterday +%Y%m%d)"
#重命名日志文件
mv ${LOG_HOME}/access.log L O G H O M E / a c c e s s . {LOG_HOME}/access.LOG 
H
​
 OME/access.{LOG_PATH_BAK}.log
mv ${LOG_HOME}/error.log L O G H O M E / e r r o r . {LOG_HOME}/error.LOG 
H
​
 OME/error.{LOG_PATH_BAK}.log
#向nginx主进程发信号重新打开日志
kill -USR1 cat ${LOG_HOME}/nginx.pid

#删除90天前的日志
#find /data/svr/nginx/logs/ -atime +90 -exec rm -f {} ;

2、在root下新建个crontab定时任务:
crontab -e
#nginx日志分割
0 0 * * * /data/svr/nginx/sbin/nginx_cutlog.sh
#!/bin/bash
DATA=$(date -d "-1 day" "+%Y%m%d")
LOG_PATH="/usr/local/nginx/logs"
PID_PATH="/usr/local/nginx/logs/nginx.pid"
if [ -f $PID_PATH ]; then
        mv $LOG_PATH/access.log $LOG_PATH/access.$DATA.log
        mv $LOG_PATH/error.log $LOG_PATH/error.$DATA.log
        kill -USR1 $(cat $PID_PATH)
        find $LOG_PATH/* -name "*.log" -type f -mtime +15 | xargs rm -f
else
    echo "Error,Nginx is not working!"  >> /var/log/messages
fi

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/941874.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号