Nginx日志清理脚本

Nginx日志清理脚本


适用环境

使用Bash为默认shel且符合LSB标准的Linux系统。

脚本功能

  • 配合crontab任务,此脚本可实现定期清理nginx日志的功能。

  • 例如:当设定定时清理时间为30天,且配置crontab任务为如下时。此脚本可实现每天1:00清理30天前的nginx日志。

    0 1 * * * /home/suifenpx/nginx_log_clear.sh
    

使用方法

  • 修改nginx_access_log变量的值为Nginx的access日志的路径。
  • 修改nginx_error_log变量的值为Nginx的error日志的路径。
  • 修改clear_date变量的值为清理日志的时间限制(例如:当值为30时,表示清理30天前的日志)。

脚本

#!/bin/bash

:<<!
    功能:Ningx日志清理
    版本:0.4a
    注意:使用前需修改如下变量的值:
        1、修改nginx_access_log变量的值为Nginx的access日志的路径。
        2、修改nginx_error_log变量的值为Nginx的error日志的路径。
        3、修改clear_date变量的值为清理日志的时间限制(例如:当值为30时,表示清理30天前的日志)。
    作者:SuiFenPX
    邮件:suifenpx@qq.com
    日期:2020-12-29
!

nginx_access_log=/home/suifenpx/access.log
nginx_error_log=/home/suifenpx/error.log
clear_date=30

last_month_4a=`date -d "-\$clear_date days" +%d\\\/%b\\\/%Y`
last_month_4e=`date -d "-\$clear_date days" +%Y\\\/%m\\\/%d`
tmp_file_4a=$nginx_access_log.tmp
tmp_file_4e=$nginx_error_log.tmp
now_date=`date +"%Y-%m-%d %H:%M:%S"`

function clear_access_log() {
    sed -n "/$last_month_4a/,\$p" $nginx_access_log > $tmp_file_4a
    cat $tmp_file_4a > $nginx_access_log
    rm -rf $tmp_file_4a
    echo -e "$now_date [SUCCESS] $clear_date天前的Nginx access日志已清理!"
}

function clear_error_log() {
    sed -n "/$last_month_4e/,\$p" $nginx_error_log > $tmp_file_4e
    cat $tmp_file_4e > $nginx_error_log
    rm -rf $tmp_file_4e
    echo -e "$now_date [SUCCESS] $clear_date天前的Nginx error日志已清理!"
}

if [ -e $nginx_access_log ] && [ -e $nginx_error_log ];then
    clear_access_log
    clear_error_log
    exit
elif [ -e $nginx_access_log ] && [ ! -e $nginx_error_log ];then
    clear_access_log
    echo -e "$now_date [ERROR] 未找到$nginx_error_log文件!"
    exit
elif [ ! -e $nginx_access_log ] && [ -e $nginx_error_log ];then
    clear_error_log
    echo -e "$now_date [ERROR] 未找到$nginx_access_log文件!"
    exit
elif [ ! -e $nginx_access_log ] && [ ! -e $nginx_error_log ];then
    echo -e "$now_date [ERROR] 未找到$nginx_access_log文件!"
    echo -e "$now_date [ERROR] 未找到$nginx_error_log文件!"
    exit
fi
上一篇:9.css浮动.html


下一篇:浮动