Nginx日志分割

#!/bin/bash

# 日志备份目录
bak_dir=/opt/backup/log_bak/nginx/

# 获取当前日期和小时数
day=$(date +"%Y%m%d")
log_hour=$(date +"%H")

# 日志路径和文件
logs_path=/opt/lucky/logs/nginx/
access_log=${logs_path}web_access.log
error_log=${logs_path}web_error.log

# 获取四个小时前的时间和昨天的日期
ago=$(date +%H --date="-4 hour")
yesterday=$(date +%Y%m%d --date="-1 day")

# 如果备份目录不存在,则创建该目录
mkdir -p ${bak_dir}

# 拆分日志并移动到备份目录
cp ${access_log} ${bak_dir}web_access-${day}_${log_hour}:00.log
cp ${error_log} ${bak_dir}web_error-${day}_${log_hour}:00.log

# 清空日志文件
echo > ${access_log}
echo > ${error_log}

# 删除四个小时前的日志文件
if [ -f ${bak_dir}web_access-${day}_${ago}:00.log ]; then
    rm -f ${bak_dir}web_access-${day}_${ago}:00.log
fi

if [ -f ${bak_dir}web_error-${day}_${ago}:00.log ]; then
    rm -f ${bak_dir}web_error-${day}_${ago}:00.log
fi

# 如果当前时间是下午2点,则删除昨天的日志文件
if [ ${log_hour} -eq 14 ]; then
    rm -f ${bak_dir}web_access-${yesterday}*
    rm -f ${bak_dir}web_error-${yesterday}*
fi

你可能感兴趣的:(Nginx,nginx,运维,服务器)