nginx 日志清理

来源:互联网 发布:淘宝针筒怎么上传 编辑:程序博客网 时间:2024/05/14 08:40
  1. nginx日志文件需要手动分割,创建脚本文件clear_log.sh

    文件路径/usr/local/nginx/clear_log.sh

    vi clear_log.sh。输入如下内容

    #!/bin/bash

    cp /usr/local/nginx/logs/error.log /usr/local/nginx/error-$(date -d "yesterday" +"%Y%m%d").log

    #先复制原来的错误日志文件,请根据自己实际的日志路径填写

    cat /dev/null > /usr/local/nginx/logs/error.log

    #清空错误日志文件

    cp/usr/local/nginx/logs/access.log /var/log/nginx/access/access-$(date -d "yesterday" +"%Y%m%d").log

    #先复制原来的正常访问日志

    cat /dev/null > /usr/local/nginx/logs/access.log

    #清空原来的正常访问日志

  2. 2

    创建dellog.sh文件,路径/usr/local/nginx

    vi dellog.sh

    #!/bin/sh

    find /usr/nginx/logs/error -mtime +7 -type f -name \*.log | xargs rm -f

    find /usr/nginx/logs/access -mtime +7 -type f -name \*.log | xargs rm -f

    #定期删除七天前的日志文件

  3. 3

    启动Linux下的计划任务,将刚才创建好的两个shell脚本加入此计划

    crontab -e,输入如下内容

    0 0 * * * /usr/nginx/clear_log.sh

    #每天0点执行/usr/nginx/clear_log.sh

    0 0 * * * /usr/nginx/dellog.sh

    #每天0点执行 /usr/nginx/dellog.sh

    保存后退出,输入命令crontab root就会看到/var/spool/cron/文件夹下看到相应的副本文件root。至此完成nginx日志按天拆分与定期清除。

  4. 4

    逻辑详解:比如现在是3月18日0点0分,系统会自动执行clear_log.sh与dellog.sh两个shell脚本。clear_log.sh会把3月17日的日志文件分别生成为access_20140317.log与error_20140318.log,然后把原来的access.log与error.log分别清空。dellog.sh则会自动判断该文件的创建时间,如果是十五天前的就会自动清除

0 0
原创粉丝点击