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中定时去跑就行了