当前位置:首页 > 开发 > 开源软件 > 正文

NGINX日志切割

发表于: 2012-10-28   作者:dcj3sjt126com   来源:转载   浏览次数:
摘要:   Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。 Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Ng

 

Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。

Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多。

上周对Centos中跑的Nginx做了优化,重新设置了图片、JS、CSS的缓存时间,关闭了一些不需要的日志记录等,我侧重讲日志的处理,因为我觉得这个是相当有必要的。刚开始一直认为日志没有必要处理,也就那么几M的东西,当我查看日志大小的时候我瞠目了,我的日志居然有几百M的级别了,当下就决定对日志进行每天必要的处理操作。

为什么要切割日志?一般Nginx安装好后有些人会打开日志记录有些人会关闭日志记录,打开日志记录的人一般都会把架设在Nginx上的所有网站日志都存在同一个文件里(比如我存在access.log日志文件里),这样日积月累所有网站的访问记录就会把日志文件越积越大,当需要查看日志文件的时候一看就是一大串,不方便查找。现在,如果我把每天的日志文件分割开来用相应的日期标识出来这样就大大方便查找了。(我是建议打开日志记录,日志记录里面存放着很多有用的东西。比如:浏览器名称,可以方便你对网站的排版做出调整;IP地址,如果网站收到攻击,你就可以查到那个IP地址。)

下面开始详细步骤:

编写shell程序

某种情况下会设置多个子域名,因此会产生多个日志文件,像我这类喜欢整齐的人会设置多个日志文件,把每个域名的日志都分开放。下面这个shell程序是多域名处理。

下面是示例,对以下三个网站的日志切割(日志文件名自己命名):

http://www.1991s.com 对应日志 blog.log

http://demo.1991s.com 对应日志 demo.log

http://happy.1991s.com 对应日志 happy.log

# !/bin/bash

# 你的日志文件存放目录

logs_path="/home/logs/"

# 日志文件的名字,多个需要空格隔开

logs_names=(blog demo happy)

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

num=${#logs_names[@]}

for((i=0;i<num;i++));do

mv ${logs_path}${logs_names[i]}.log ${logs_path}$(date -d "yesterday"+"%Y")/$(date -d "yesterday"+"%m")/${logs_names[i]}_$(date -d "yesterday"+"%Y%m%d").log

done

#pid的位置,自己查找

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

设置crontab,每天定时切割

首先需要确定你的服务器有没有安装crontab的服务,输入crontab -e命令,有反应就安装了。

如果没有安装,运行yum install vixie-cron 一键安装。

输入crontab -e命令,输入下面的内容:

1、00 00意思为00分00点,也就是凌晨0点,后面“ * * * ”为“ 日 月 年 ”无需定义

2、” /home/logs/cut_nginx_log.sh “为你的shell的路径。

00 00 * * * /bin/bash /home/logs/cut_nginx_log.sh

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

注解:

1.只在Centos下测试,其他linux环境设置略有不同。

2.开启shell程序的775权限,否则可能导致不能运行。

NGINX日志切割

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
小小菜鸟脚本,菜鸟思维,见谅!!! 一、首先是日志切割 #! /bin/bush ##########################
1.首先修改nginx日志格式为combined格式: # log_format combined # '$remote_addr - $remote_user
作者:zhanhailiang 日期:2014-01-06 默认nginx只会生成一个access.log和一个error.log,并且每天不
GoAcces是一款实时日志分析工具. 目前,我们可以通过这款软件查看的统计信息有: 统计概况,流量消
例行检查,发现网站目录下有个access.log文件十分巨大,已经有10多G了。 用sed -n '1,10p' access.l
一、日志管理   先来看看ngnix的配置文件的server段      接下来我们解释一下默认格式的具体
一、日志管理 先来看看ngnix的配置文件的server段 接下来我们解释一下默认格式的具体意思 #log_form
面试的时候一定会被面到的问题是:给出web服务器的访问日志,请写一个脚本来统计访问前10的IP有哪些
面试的时候一定会被面到的问题是:给出web服务器的访问日志,请写一个脚本来统计访问前10的IP有哪些
在nginx接收到请求之后, 需把请求分发到后端WEB服务集群. 在这里需要记录分发日志, 来分析后端每台W
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号