zoukankan      html  css  js  c++  java
  • linux系统上nginx配置按天生成日志文件

    nginx日志默认把日志都写到一个文件中,这样不方便管理,而且文件容量会越来越大,所以为了方便管理分析日志把日志按天切割,即每天生成一个新的日志文件。

    实现步骤

    1. 找到nginx日志文件
    我的文件在/usr/local/nginx/logs这个路径下,有个access.log文件就是nginx的日志文件

    2. 进入该路径创建个sh文件(称为批处理日志文件)
    touch part_log.sh(文件名自定义,后缀.sh即可)

    3. 编辑part_log.sh文件。输入如下内容:
      vim part_log.sh

    D=$(date +%Y-%m-%d)
    LOGS_PATH=/usr/local/nginx/logs
    mv ${LOGS_PATH}/access.log ${LOGS_PATH}/${D}.log
    kill -USR1 $(cat/usr/local/nginx/logs/nginx.pid)

    说明:

    • 定义一个D变量并把当前系统时间赋值给D
    • 定义一个变量LOGS_PATH用来存放日志的路径
    • 使用mv命令把access.log日志文件, 以时间格式重命名。 这样nginx又会生成一个新的access.log文件
    • kill -USR1 切换日志文件。语法:kill -USR1 主进程号

    4. 设置好脚本使用定时器每天23:59跑一次就好了
    编辑定时器
    crontab -e
    输入如下内容
    59 23 * * * sh /usr/local/nginx/logs/cutlog.sh > /data/bak.log 2>&1
    查看定时器内容
    crontab -l

    crontab时间格式内容

    *    *    *    *    *    command
    M    H    D    m    d    command
    分   时   日   月   周   命令
    第1列表示分钟1~59 每分钟用*或者 */1表示
    第2列表示小时1~23(0表示0点)
    第3列表示日期1~31
    第4列表示月份1~12
    第5列标识号星期0~6(0表示星期天)
    第6列要运行的命令或脚本内容  
    

    5. 定时删除以前的日志
    每天生成一个日志文件时间久了会产生很多文件,所以需要定期的清理一下旧的文件,
    创建clear.sh文件,输入如下命令

    说明:

    • find:查找,liunx内置命令

    • /data/server/nginx/logs/:日志所在目录;

    • -mtime:标准语句写法;

    • +10:查找10天前的文件,这里用数字代表天数;

    • "*.log":log文件;

    • -exec:固定写法;

    • rm -rf:强制删除文件,包括目录;

    • {} ; :固定写法

    连起来的意思就是,查找指定目录下10天前的*.log文件,然后删掉。

    编辑好脚本后按照第四步加入到定时器中就好了。

  • 相关阅读:
    Ax+By+C=0 直线一般式拟合 c++/python
    win7结束进程 时,提示“拒绝访问”、“没有此任务的实例运行” taskkill 结束不了进程
    Keras神经网络转到Android可用的模型
    Keras深度神经网络训练IMDB情感分类的四种方法
    解决win7 word 2016中不能加载EndNote x7
    Google Coral Dev Board
    pydot` failed to call GraphViz.Please install GraphViz
    使用可视化图表对 Webpack 2 的编译与打包进行统计分析
    webpack 多环境配置
    格式化时间
  • 原文地址:https://www.cnblogs.com/jn1011/p/13994032.html
Copyright © 2011-2022 走看看