zoukankan      html  css  js  c++  java
  • nginx日志切割

    作用:
    如果日志文件比较大,MV是需要时间的,这段时间内的日志有可能丢失。logrotate可以在切割日志的同时,不丢失数据。

    vi /etc/logrotate.d/nginx
    /usr/local/nginx/logs/*.log {
    daily
    rotate 7
    missingok
    notifempty
    dateext
    sharedscripts
    postrotate
    if [ -f /usr/local/nginx/logs/nginx.pid ]; then
    kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
    fi
    endscript
    }
    脚本解释:
    /usr/local/nginx/logs/*.log { nginx的日志路径
    /usr/local/nginx/logs/www.qq.com.log error.log { 可以指定日志,用空格分开
    daily 每天轮询
    rotate 7 保留7天
    missingok 如果日志丢失,不报错继续滚动下一个日志
    notifempty 当日志为空时不进行滚动
    dateext 在文件末尾添加当前日期
    sharedscripts 运行postrotate脚本
    postrotate 脚本内容,给NGINX发信号要求重新生成日志,如果nginx没开起来就不操作
    if [ -f /usr/local/nginx/logs/nginx.pid ]; then
    kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
    fi
    endscript
    }
    测试,有生成就代表配置成功
    /usr/sbin/logrotate -f /etc/logrotate.d/nginx
    配置crontab
    00 00 * * * /usr/sbin/logrotate -f /etc/logrotate.d/nginx
    也可以放入/etc/cron.daily/

    一定要注意:1、在测试切割是否成功,一定要先备份一下!如果想保留全部日志,设置一个很大的值比如3650,如果你 注释rotate或者不加,那么不会切割成功。

  • 相关阅读:
    一些技术摘选及随想
    新技术学习方法如何学习一门新编程语言(Lua)?
    什么时候该用ASSERT?
    MFC是否过时?如何学习MFC?
    Windows桌面开发者的必备软件
    Comet技术选择,论Is node.js best for Comet?
    关于C/C++内存管理一些乱讲
    debug
    C语言趣味题目
    CSS之简单的双引号
  • 原文地址:https://www.cnblogs.com/lidong94/p/7161748.html
Copyright © 2011-2022 走看看