zoukankan      html  css  js  c++  java
  • 利用crontab定时备份nginx访问日志(也可以说是定时切分日志)

    在我们的工作中,肯定会涉及到分析访问日志。

    但是如果访问日志都集中存在于一个文件中,那数据量就太大了,并且也不利于我们进行分析。

    所以我们需要对访问日志进行按时间切割。

    思路:

    我们可以利用linux的crontab来执行定时任务。定时的将日志文件mv出来,并且日志目录重新建一个空文件用于接收访问数据。

    新建一个根目录下的data文件夹用于存储分割的日志

    mkdir /data/

    shell脚本我们就写在这个data目录中吧。

    其中shell脚本我们可以这样写:


    #!/bin/bash
    logpath='/usr/local/nginx/logs/panchao.com.access.log'
    basepath=/data

    #这里我们按的是分钟备份文件,为的是能够及时的看到效果。

    bak=$basepath/$(date -d yesterday +%Y%m%d%H%M).panchao.access.log             

    mv $logpath $bak

    #重新创建新日志文件,接收新的访问信息,保证了备份出去的日志都是不重复的。
    touch $logpath        

    #重读日志,因为是新建的文件(inode改变了)
    kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` 

    到这里shell脚本就写完了。

    下面我们来配crontab。(crontab的安装和开启这里就不做赘述了)

    我们可以看到,在我写随笔的这些时间/data目录下已经生成了好几个文件了。

    我们再来看看内容。

    vi 201812121459.panchao.access.log 

    其实,最主要的就是编写shell脚本,和定时任务的开启。其它的没什么了。

  • 相关阅读:
    js中细小点
    被 idea 坑了的记录篇
    Spring 读写分离
    Java反射机制
    Spring AOP
    java Beanutils.copyProperties( )用法
    java List 数组删除元素
    java 中序列化(Serializable)
    webpack 入门
    使用zxing生成彩色或带图片的二维码
  • 原文地址:https://www.cnblogs.com/573734817pc/p/10114249.html
Copyright © 2011-2022 走看看