`

Shell脚本分割Nginx日志,并定期清理

阅读更多

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

 

一:新建脚本文件
vim cut_nginx_log.sh

  1. #!/bin/bash
  2. #nginx access log segmentation shell script
  3. #www.webyang.net
  4. #日志目录
  5. log_dir="/usr/local/nginx/logs/"
  6. cd $log_dir
  7. time=`date +%Y%m%d --date="-1 day"`
  8. #nginx启动目录
  9. nginx_dir="/etc/init.d/nginx"
  10. #日志保存天数
  11. save_days=15
  12. #日志文件名所处'/'分割的位置,key('/'数+1)
  13. num=6;
  14.  
  15. #此处待优化(取得文件不带后缀的文件名)
  16. website=`ls $log_dir*.log | xargs -n 1 | cut -f 1 -d "." | cut -f $num -d "/"`
  17. #日志目录下所有的日志文件为文件夹,循环新建对应的时间文件
  18. for i in $website
  19. do
  20. #判断目录是否存在
  21. if[!-d $log_dir$i ];then
  22. mkdir "$i"
  23. fi
  24. mv $log_dir$i.log $log_dir$i/$i-$time.log
  25. done
  26.  
  27. #删除设置天数前的数据
  28. find $log_dir/-mtime +$save_days -exec rm -rf {} \;
  29.  
  30. #平滑启动nginx
  31. $nginx_dir reload

二、设置crontab,每天定时切割
如果没有安装,运行yum  -y install crontabs 安装。
输入crontab -e命令(详情参考:http://www.webyang.net/Html/web/article_232.html),
输入下面的内容:
00 00 * * * /bin/bash /usr/local/nginx/cut_nginx_log.sh

1、00 00意思为00分00点,也就是凌晨0点,后面“ * * * ”为“ 日 月 年 ”无需定义
2、"/usr/local/nginx/cut_nginx_log.sh" 为你的shell的路径。

OK ! 大功告成,每天的0时就会自动完成日志的切割并存在相应的以网站日志文件命名的目录中。

三、展示
web1.log => web1/web1-20160322.log web1/web1-20160323.log
web2.log => web2/web2-20160322.log web2/web2-20160323.log

 

本文博客:http://www.webyang.net/Html/web/article_255.html

0
4
分享到:
评论

相关推荐

    shell脚本实现nginx日志分割

    本解本实现了使用shell脚本实现nginx日志分割,大家如果没资源分下载,可以转至:https://mp.csdn.net/mdeditor/85233117# 去查看源代码。谢谢大家

    Nginx日志切割清理脚本

    利用crontab定时机制触发shell脚本,自动切割nginx的日志文件,并实现自动清理,可直接在服务器上上传使用

    Windows系统nginx日志分割批处理脚本

    : 为限制 Nginx日志文件大小增加,文件过大,导致无法收缩日志,在配置好的nginx的安装目录下,可以采用批处理文件对日志,根据实际需要的时间进行自动切割,本脚本以天为单位进行保存。对于日志备份功能,因存储...

    开启、停止 nginx 的shell脚本

    标题中的“开启、停止 nginx 的 shell 脚本”指的是使用 Linux shell 脚本来启动或停止 Nginx 服务器,这是一个常见的系统管理员任务。Nginx 是一款高性能的 Web 和反向代理服务器,广泛应用于网站托管和服务提供。...

    nginx 最常使用的日志分析shell脚本

    下面分享一下我用Shell编写的分析Nginx日志的脚本,它可以快速得出排名最前的网 站和IP等,内容如下所示: Most of the ip: ------------------------------------------- 220 59.41.24.48 178 59.41.24.80 172 ...

    Nginx日志自动归档备份shell脚本log.sh

    Nginx日志自动归档备份shell脚本log

    shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询)

    本文将介绍一个用于分析`nginx`日志的`shell`脚本,该脚本能够帮助我们找出访问次数最多和最耗时的页面,从而针对性地进行优化。这个脚本类似于`MySQL`中的慢查询日志分析,但针对的是Web页面的慢访问情况。 首先,...

    nginx日志自动定时切割及清除脚本

    nginx日志自动定时切割及清除脚本

    Nginx.sh shell脚本

    搭建nginx,安装包去官网下载,然后修改脚本路径,执行即可

    自动reload nginx解决nginx对动态域名不重新解析的Shell脚本

    为了解决这个问题,我们可以编写一个Shell脚本来定期检查IP变化并自动执行`nginx -s reload`命令来强制Nginx重新加载配置。 ### Shell脚本工作原理 1. **检测IP变化**:首先,脚本会定期读取动态DNS服务提供的API...

    windows nginx 按天切割日志

    windows nginx 按天切割日志

    shell脚本(监控日志发告警邮件)

    监控生产环境nginx日志发告警邮件,需要使用linux系统的定时任务,如5分钟执行或者其他时间间隔

    shell脚本编程100例

    本书《shell脚本编程100例》为读者提供了100个实战性的shell脚本编程实例,涵盖了检测网段主机状态、猜数字游戏、打印乘法口诀、使用rsync备份数据、切割Nginx日志、监控服务端口、使用mtime删除历史文件或日志文件...

    nginx按天进行日志切割脚本,同样适合其它很多服务日志的切割

    nginx按天进行日志切割脚本,同样适合其它很多服务日志的切割,压缩包包含shell切割脚本和使用说明,该脚本适合nginx同时也适合其他类似服务的日志切割,只要简单修改shell脚本即可,灵活多变,实用。

    用shell脚本分析Nginx日志

    本文将介绍用shell脚本来分析Nginx负载均衡器的日志,这样可以快速得出排名靠前的网站和IP等,推荐大家使用线上环境下的shell脚本。本文中的shell脚本又分为两种情况,第一种情况是Nginx作为前端的负载均衡器,其...

    nginx实现请求的负载均衡 + keepalived实现nginx的高可用的shell脚本

    在提供的Shell脚本中,可能包含了安装、配置Nginx和Keepalived,以及监控Nginx状态的相关命令。运行这个脚本可以在Linux环境下快速部署这样一个高可用的负载均衡集群。 总结起来,Nginx和Keepalived的组合为Web服务...

    使用shell脚本一键自动生产nginx https证书

    原文链接:https://blog.csdn.net/m0_37814112/article/details/119391879?spm=1001.2014.3001.5501 说明:一键生产nginx https自签证书脚本,真实有效!

    109个shell脚本合集.pdf

    这个脚本可以将Nginx访问日志按照天来切割,这可以帮助我们更好地管理日志文件。我们使用date命令来获取当前日期,并使用mv命令来移动日志文件。 Shell脚本可以自动切割日志文件,以便更好地管理日志。 通过这些...

    nginx一键部署,包含shell脚本及nginx安装包

    在这个压缩包中,我们拥有一个名为 "install_nginx" 的 shell 脚本,用于简化 Nginx 的安装过程,使得在服务器上快速部署 Nginx 成为可能。 **一、Nginx 的基本概念** 1. **Web 服务器**:Nginx 主要工作是接收...

    Nginx日志切割脚本

    Nginx日志切割脚本

Global site tag (gtag.js) - Google Analytics