Nginx日志分割Shell脚本,按天分类存储并删除超过7天的日志

如果使用LNMP网站环境的话,默认nginx只会生成一个访问日志,并且是在每天的积累,日志文件会变的非常大,如果需要做一下日志的分析,无论是使用脚本分析,还是把日志下载本地分析,都不太方便。每天分割Nginx的访问日志,有利于分析日志。

脚本内容:

#!/bin/bash
# a nginx access log segmentation shell script
# www.1987.name

cd /data/wslogs
log_dir="/data/wslogs"
time=`date +%Y%m%d`
nginx_dir="/usr/local/webserver/nginx"

#日志分割,按天分类
website=`ls $log_dir/access* | xargs -n 1 | cut -f 2 -d "."`
for i in $website
do
  mkdir -p $log_dir/backup/$time/$i
  mv $log_dir/access.$i.log $log_dir/backup/$time/$i/$time.log
done
$nginx_dir/sbin/nginx -s reload

#删除所有超过7天日志。
if [ "`date +%a`" = "Sun" ]; then
  all_list=`ls $log_dir/backup | xargs -n 1`
  for del in $all_list
  do
    let results=$time-$del
    if [ $results -gt 7 ]; then
      rm -fr $log_dir/backup/$del
    fi
  done
fi

需要注意的是:因为个人需要,Nginx访问日志命名格式必须是access.域名.log,例如:access.www_1987_com.log,域名中原来的点.必须换成其他字符,比如下划线_

代码中的一些位置参数可以根据自己需要修改,修改/etc/crontab文件,加入00 00 * * * root /data/logcron.sh,每天零点执行。

暂无评论

写评论

您必须登录后才可以发表评论。

本人从事电脑网络维护工作多年,对电脑配置较为熟悉,闲暇之余精心搜罗了目前主流电脑配置清单推荐给大家。紧跟市场动态,定期更新电脑硬件配置方案,扫除一切垃圾坑爹配置,提供最具性价比的电脑配置清单!本站涵盖内容包括:电脑组装机配置单、电脑组装机报价、电脑组装机教程等,另外还提供很多技术文章供您学习!