Nginx日志切割

素颜马尾好姑娘i 2024-04-17 06:00 171阅读 0赞

1、概述

日志切割就是日志备份,用crontab表达式按时间段去执行shell脚本,把当前日志备份起来。把新的日志存入新的日志文件里。

2、shell脚本

  1. #进入目录
  2. cd /usr/local/nginx/sbin
  3. #!/bin/bash
  4. #设置日志的存放目录
  5. LOG_HOME="/usr/local/nginx/logs"
  6. #备分文件名称 $() 用命令执行,备份日志文件名为当前日期
  7. #date "+%Y-%m-%d-%H:%M" 年-月-日-小时:分 精确到分
  8. LOG_PATH_BAK="$(date "+%Y-%m-%d-%H:%M")"
  9. #修改当天的日志名称 ${变量} 引用值
  10. mv ${LOG_HOME}/access.log ${LOG_HOME}/access.${LOG_PATH_BAK}.log
  11. mv ${LOG_HOME}/error.log ${LOG_HOME}/error.${LOG_PATH_BAK}.log
  12. #得到进程名称,在nginx执行时,在logs目录下会生成nginx的进程,就是nginx.pid文件。
  13. NGINX_PID="$(cat ${LOG_HOME}/nginx.pid)"
  14. #USR1亦通常被用来告知应用程序重载配置文件
  15. kill -USR1 ${NGINX_PID}
  16. #可读可写可执行
  17. chmod +777 logcut.sh

3、contab

在这里插入图片描述
3.1、查看contab运行环境

  1. service crond status

在这里插入图片描述
3.2、编写contab文件

  1. #编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
  2. crontab -e
  3. #1分钟执行一次
  4. */1 * * * * /usr/local/nginx/sbin/logcut.sh

3.3、查看contab运行情况

  1. crontab -l

在这里插入图片描述
3.4、查看日志
在这里插入图片描述
3.5、如果做日志统计,全部放在logs文件夹下面也不是很好,建议按天统计当天文件夹,或者按月统计。按天统计的shell文件,自己造的脚本,不好请多多包涵。

  1. #!/bin/bash
  2. #设置日志的存放目录
  3. LOG_HOME="/usr/local/nginx/logs"
  4. #获取年
  5. CURRENT_YEAR="$(date +%Y)"
  6. #获取月
  7. CURRENT_MONTH="$(date +%m)"
  8. #获取日
  9. CURRENT_DAY="$(date +%d)"
  10. #创建日志文件
  11. LOG_PATH_BAK=${LOG_HOME}/${CURRENT_YEAR}/${CURRENT_MONTH}
  12. #if fi
  13. #-d filename: 如果 filename为目录,则为真
  14. if [ ! -d "$LOG_PATH_BAK" ]; then
  15. mkdir -p $LOG_PATH_BAK
  16. fi
  17. #修改当天的日志名称 ${变量} 引用值
  18. mv ${LOG_HOME}/access.log ${LOG_PATH_BAK}/access.${CURRENT_DAY}.log
  19. mv ${LOG_HOME}/error.log ${LOG_PATH_BAK}/error.${CURRENT_DAY}.log
  20. #得到进程名称
  21. NGINX_PID="$(cat ${LOG_HOME}/nginx.pid)"
  22. #USR1亦通常被用来告知应用程序重载配置文件
  23. kill -USR1 ${NGINX_PID}

发表评论

表情:
评论列表 (有 0 条评论,171人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Nginx日志切割

    Nginx日志没有类似Apache这样通过cronlog或者rotatelog对日志分割处理的能力。实际的问题是线上的日志如果不按天进行切割,那么日志就会越来越大,可以达到几G

    相关 Nginx日志切割

    默认情况下,nginx的日志比如:error.log,access.log都保存在/usr/local/nginx/logs目录下,慢慢的,日志会累积的越来越大,因此我们需要以

    相关 nginx日志切割

    概述 nginx的日志一般保存在logs文件夹下,随着运行时间加长,日志文件越来越大,阅读和查找也更加困难 有必要对日志文件进行切割  一般是以天为单位 添加定时任

    相关 nginx日志切割

    Web 访问日志 (access\_log) 记录了所有外部客户端对Web服务器的访问行为,包含了客户端IP,访问日期,访问的URL资源,服务器返回的HTTP状态码等重要信息。