Nginx 自动生成日志备份

Nginx网站访问日志数据会随着访问量的增加而日益庞大,以下介绍一个简单的脚本,自动切割备份过往日期日志数据

# 在任何位置创建一个脚本
vim /path/yourpath/nginx_logs.sh

以下是脚本代码

#! /bin/bash

# 日志路径可以根据实际项目更改,不存在自动创建文件夹路径
test -d /data/oldlogs || mkdir -p /data/oldlogs

# nginx 每日生成的log路径
log_dir='/data/logs/' 

# nginx 需要备份生成的log路径
oldlog_dir='/data/oldlogs/'

# nginx.pid 路径 根据实际项目位置修改,以下仅供参考
pid_dir='/var/run/nginx.pid'

# 备份超过30天的数据 自动删除
Dateago=`date --date '30 days ago' +%Y%m%d`

# 前一天时间
Date1=`date --date '1 days ago' +%Y%m%d`

for i in `ls $log_dir*[gr]`
        do
                mv "$i" "$i"."$Date1"
                mv "$i"."$Date1" "$oldlog_dir"
        done

kill -USR1 `cat $pid_dir`

find $oldlog_dir -name "*"$Dateago"*" -exec rm -f {} \;

脚本写完后加入crontab中定时去跑就行了

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦

分享到
  • QQ好友
  • 微信好友
  • 新浪微博