`
wbj0110
  • 浏览: 1602755 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

NginxWeb服务器定时切割日志shell脚本

阅读更多

Nginx 定时切割日志

定时切割方式有按月切割、按天切割、按小时切割等。最常用的是按天切割。

Nginx 不支持像Apache一样使用cronolog来轮转日志,但是可以采用以下方式来实现日志文件的切割:

mv /data1/logs/acccess.log /data1/logs/20130423.log

kill -USR1 Nginx主进程号

首先通过mv命令将日志文件重命名为 /data1/logs/20130423.log,然后发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件/data1/logs/access.log.如果nginx.conf配置文件中使用了"pid /usr/local/webserver/nginx/nginx.pid;"指令,指定了pid文件的存放路径,我们可以通过cat 这个pid文件获得Nginx的主进程号,命令如下:

kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`

如果想每天定时切割日志,还须接触crontab.我们可以写一个按天切割的日志,按年、按月分目录存放日志的shell脚本:

vi /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

#!/bin/bash

#这个脚本须在每天的00:00运行

#Nginx日志文件的存放路径

logs_path="/data1/logs/"

 

mkdir -p ${log_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/

mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" + "%Y%m%d").log

kill -USR1 `cat /usr/local/webserver/nginx/nginx.pid`

 

保存,另外,配置crontab每天凌晨00:00定时执行这个脚本:

chmod 777 cut_nginx_log.sh

crontab -e

输入一下内容并保存:

00 00 * * * /bin/bash /usr/local/webserver/nginx/sbin/cut_nginx_log.sh

分享到:
评论

相关推荐

    linux 下web服务器每天生成日志的shell脚本

    通过编写和使用shell脚本,我们可以实现Linux环境下Web服务器日志的自动化管理,包括日志生成、归档、切割、分析和安全控制。结合`cron`和`logrotate`工具,可以实现高效的日志维护流程,同时确保日志数据的安全性和...

    nginx日志切割shell脚本

    Nginx作为一款流行的Web服务器,其默认的日志文件不具备自动轮换(rotate)功能,随着时间推移,日志文件可能变得非常大,占用大量磁盘空间。 2. **日志切割**:日志切割是将旧的日志文件保存为归档文件,并创建新...

    100个shell脚本合集

    8. LAMP环境自动化部署:LAMP(Linux, Apache, MySQL, PHP)是一套常见的Web服务器环境,通过shell脚本可以实现一键安装和配置,大大简化部署过程。 9. 自动发布Java项目:shell脚本也可以用于自动化Java项目的构建...

    Crontab+Shell做Nginx日志切割脚本实例代码

    Nginx作为一款广泛应用的Web服务器,其产生的日志文件可能会随着时间积累变得非常庞大,占用大量磁盘空间。此时,通过Crontab定时任务配合Shell脚本来实现日志的自动切割,是一种实用且高效的方法。 **日志切割脚本...

    nginx日志切割.rar

    日志切割通常通过cron job定时任务配合shell脚本实现。脚本会根据预设的时间间隔(如每日、每小时)来重命名当前日志文件并创建新的日志文件。Nginx自身并不直接支持日志切割,但可以通过信号`USR1`来优雅地重新打开...

    详解Nginx日志配置及日志切割

    一个常见的方法是编写一个shell脚本,并将其加入到cron任务中定时执行。脚本中可以使用mv命令移动和重命名现有的日志文件,并发出信号给Nginx来打开新的日志文件。例如,使用HUP信号可以告诉Nginx重新打开日志文件,...

    279个开箱即用的shell脚本(new)2024年新版

    Nginx作为常用的Web服务器之一,其日志管理非常重要。此脚本可以自动按天将Nginx的日志文件分割,便于后续管理和查询。 **关键技术点:** - **日期格式化:** 生成唯一标识符用于文件命名。 - **文件操作:** 创建以...

    logshell_linux_

    在服务器管理中,日志文件的管理和维护是一项重要任务,尤其对于Web服务器如Nginx来说,日志文件记录了所有HTTP请求的信息,对于故障排查和性能分析至关重要。然而,随着服务器运行时间的增长,日志文件可能会变得...

    Linux下nginx生成日志自动切割的实现方法

    在Linux环境中部署Nginx作为Web服务器时,随着访问量的增加,Nginx的日志文件会不断增长,导致日志文件变得非常庞大。这不仅消耗了大量的磁盘空间,还可能会影响服务器性能,特别是当Nginx尝试读取这些大型日志文件...

    Shell根据web日志计算平均连接时间功能

    通常,Apache和Nginx等Web服务器的日志格式包含多列信息,如请求时间、HTTP状态码、请求方法、URL、协议版本、客户端IP地址、用户代理、响应时间等。在这个例子中,我们关注的是第10列,即响应时间,它表示服务器...

Global site tag (gtag.js) - Google Analytics