Nginx日志切割

导读:本篇文章讲解 Nginx日志切割,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1、概述

日志切割就是日志备份,用crontab表达式按时间段去执行shell脚本,把当前日志备份起来。把新的日志存入新的日志文件里。

2、shell脚本

#进入目录
cd /usr/local/nginx/sbin

#!/bin/bash
#设置日志的存放目录
LOG_HOME="/usr/local/nginx/logs"
#备分文件名称 $() 用命令执行,备份日志文件名为当前日期
#date "+%Y-%m-%d-%H:%M"  年-月-日-小时:分 精确到分 
LOG_PATH_BAK="$(date "+%Y-%m-%d-%H:%M")"
#修改当天的日志名称 ${变量} 引用值
mv ${LOG_HOME}/access.log  ${LOG_HOME}/access.${LOG_PATH_BAK}.log
mv ${LOG_HOME}/error.log  ${LOG_HOME}/error.${LOG_PATH_BAK}.log
#得到进程名称,在nginx执行时,在logs目录下会生成nginx的进程,就是nginx.pid文件。
NGINX_PID="$(cat ${LOG_HOME}/nginx.pid)"
#USR1亦通常被用来告知应用程序重载配置文件
kill -USR1 ${NGINX_PID}

#可读可写可执行
chmod +777  logcut.sh

3、contab

在这里插入图片描述
3.1、查看contab运行环境

service crond status

在这里插入图片描述
3.2、编写contab文件


#编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
crontab -e

#1分钟执行一次
*/1 * * * *  /usr/local/nginx/sbin/logcut.sh

3.3、查看contab运行情况

crontab -l

在这里插入图片描述
3.4、查看日志
在这里插入图片描述
3.5、如果做日志统计,全部放在logs文件夹下面也不是很好,建议按天统计当天文件夹,或者按月统计。按天统计的shell文件,自己造的脚本,不好请多多包涵。

#!/bin/bash
#设置日志的存放目录
LOG_HOME="/usr/local/nginx/logs"
#获取年
CURRENT_YEAR="$(date +%Y)"
#获取月
CURRENT_MONTH="$(date  +%m)"
#获取日
CURRENT_DAY="$(date +%d)"
#创建日志文件
LOG_PATH_BAK=${LOG_HOME}/${CURRENT_YEAR}/${CURRENT_MONTH}

#if fi
#-d filename: 如果 filename为目录,则为真
if [ ! -d "$LOG_PATH_BAK" ]; then
     mkdir -p  $LOG_PATH_BAK
fi
#修改当天的日志名称 ${变量} 引用值
mv ${LOG_HOME}/access.log  ${LOG_PATH_BAK}/access.${CURRENT_DAY}.log
mv ${LOG_HOME}/error.log  ${LOG_PATH_BAK}/error.${CURRENT_DAY}.log
#得到进程名称
NGINX_PID="$(cat ${LOG_HOME}/nginx.pid)"
#USR1亦通常被用来告知应用程序重载配置文件
kill -USR1 ${NGINX_PID}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/15170.html

(0)

相关推荐

半码博客——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!