Nginx日志切割

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}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

响彻天堂丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值