现有的日志都会存在 access.log 文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维人员查看,所以我们可以通过把这个大的日志文件切割为多份不同的小文件作为日志,切割规则可以以天为单位,如果每天有几百G或者几个T的日志的话,则可以按需以每半天或者每小时对日志切割一下。

手动切割

1.创建一个shell可执行文件:cut_my_log.sh,内容为:

  1. #!/bin/bash
  2. LOG_PATH="/var/log/nginx/"
  3. RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d+%H:%M)
  4. PID=/var/run/nginx/nginx.pid
  5. mv ${LOG_PATH}/access.log ${LOG_PATH}/access.${RECORD_TIME}.log
  6. mv ${LOG_PATH}/error.log ${LOG_PATH}/error.${RECORD_TIME}.log
  7. #向Nginx主进程发送信号,用于重新打开日志文件
  8. kill -USR1 `cat $PID`

2.赋予可执行的权限

  1. chmod +x cut_my_log.sh

3.执行并测试

  1. ./cut_my_log.sh

4.结果真是

  1. [root@xxx nginx]# ll
  2. total 136
  3. -rw-r--r-- 1 root root 77587 Dec 22 15:08 access.2019-12-21+15:16.log
  4. -rw-r--r-- 1 nobody root 0 Dec 22 15:16 access.log
  5. -rw-r--r-- 1 root root 51279 Dec 22 14:58 error.2019-12-21+15:16.log
  6. -rw-r--r-- 1 nobody root 0 Dec 22 15:16 error.log

定时

1.安装定时任务:

  1. yum install crontabs

2.crontab -e 编辑并且添加一行新的任务:


  1. */1 * * * * /usr/local/nginx/sbin/cut_my_log.sh

3.重启定时任务:

  1. service crond restart

4.附:常用定时任务命令:

  1. service crond start //启动服务
  2. service crond stop //关闭服务
  3. service crond restart //重启服务
  4. service crond reload //重新载入配置
  5. crontab -e // 编辑任务
  6. crontab -l // 查看任务列表

5.查看效果

  1. [root@xxx nginx]# ll
  2. total 148
  3. -rw-r--r-- 1 root root 77587 Dec 22 15:08 access.2019-12-21+15:16.log
  4. -rw-r--r-- 1 nobody root 500 Dec 22 15:31 access.2019-12-21+15:34.log
  5. -rw-r--r-- 1 nobody root 0 Dec 22 15:34 access.2019-12-21+15:35.log
  6. -rw-r--r-- 1 nobody root 0 Dec 22 15:35 access.2019-12-21+15:36.log
  7. -rw-r--r-- 1 nobody root 128 Dec 22 15:36 access.log
  8. -rw-r--r-- 1 root root 51279 Dec 22 14:58 error.2019-12-21+15:16.log
  9. -rw-r--r-- 1 nobody root 0 Dec 22 15:16 error.2019-12-21+15:34.log
  10. -rw-r--r-- 1 nobody root 0 Dec 22 15:34 error.2019-12-21+15:35.log
  11. -rw-r--r-- 1 nobody root 0 Dec 22 15:35 error.2019-12-21+15:36.log
  12. -rw-r--r-- 1 nobody root 269 Dec 22 15:36 error.log

nginx学习(六):日志切割的更多相关文章

  1. nginx 的访问日志切割

    1. 高级用法–使用 nginx 本身来实现 当 nginx 在容器里,把 nginx 日志挂载出来的时候,我们发现就不适合再使用 kill -USR1 的方式去分割日志这时候当然就需要从 nginx ...

  2. nginx学习六 高级数据结构之双向链表ngx_queue_t

    1 ngx_queue_t简单介绍 ngx_queue_t是nginx提供的一个轻量级的双向链表容器,它不负责存储数据,既不提供数据的内存分配.它仅仅有两个指针负责把数据链入链表.它跟stl提供的qu ...

  3. linux shell:nginx日志切割脚本

    需求原因:nginx不具备日志切割功能,日志量较大,方便分析. 实现目的:完成nginx日志切割,并根据时间命名   简要命令: mv /usr/local/tengine/logs/access.l ...

  4. nginx 日志切割(也适用于docker)

    =============================================== 2019/4/6_第2次修改                       ccb_warlock 201 ...

  5. Nginx服务优化及优化深入(配置网页缓存时间、日志切割、防盗链等等)

    原文:https://blog.51cto.com/11134648/2134389 默认的Nginx安装参数只能提供最基本的服务,还需要调整如网页缓存时间.连接超时.网页压缩等相应参数,才能发挥出服 ...

  6. nginx学习笔记(四)-----日志切割脚本及定时任务

    一.日志切割脚本 #!/bin/sh #nginx目录 BASE_DIR=/usr/local/nginx #生成的日志 BASE_FILE_NAME=jonychen.access.log CURR ...

  7. Nginx (二) Nginx的反向代理负载均衡以及日志切割

    Nginx是一个高并发,高性能的服务器,可以进行反向代理以及网站的负载均衡.这些功能的运用都在配置文件中,也就是Nginx安装目录下的conf/nginx.conf. nginx.conf 1. 先来 ...

  8. Nginx日志切割,以及脚本上传nginx的切割日志

    一:日志切割步骤 命令都在root下进行 1.创建目录 mkdir -p /etc/opt/modules/bin ## 创建文件夹 2.上传cut 3.观察目录 4.修改的cut文件 5.检测 需要 ...

  9. Nginx 笔记与总结(5)访问日志管理:计划任务 + 日志切割

    要在第二天的凌晨把前一天的访问日志切割备份,并以时间作为文件名,例如:access.20150728.log,这就需要在 Linux 中格式化时间,例如: [root@localhost ~]# da ...

随机推荐

  1. Bayer图像处理 raw 数据解析

    Bayer是相机内部的原始图片, 一般后缀名为.raw. 很多软件都可以查看, 比如PS. 我们相机拍照下来存储在存储卡上的.jpeg或其它格式的图片, 都是从.raw格式转化 过来的. .raw格式 ...

  2. DARLING in the FRANXX

    那是一种叫比翼的鸟,这种鸟只有半边翅膀,如果雌鸟和雄鸟不紧靠在一起的话,它们就无法飞上天空,是不完整的生物. 但是,为什么,我总认为这种生活方式是如此美丽,感觉如此美丽. 那是一种叫比翼的鸟,我以前从 ...

  3. 【集合系列】- 深入浅出分析 ArrayDeque

    一.摘要 在 jdk1.5 中,新增了 Queue 接口,代表一种队列集合的实现,咱们继续来聊聊 java 集合体系中的 Queue 接口. Queue 接口是由大名鼎鼎的 Doug Lea 创建,中 ...

  4. webpack实践(三)- html-webpack-plugin

    webpack系列博客中代码均在github上:https://github.com/JEmbrace/webpack-practice <webpack实践(一)- 先入个门> < ...

  5. 【转载】img图片之间的间距问题

    [问题]页面中如果有多张图片,那么图片之间会有一些间距,在某些情况下(如切好的图片再次拼接),在显示上就会出现一些问题.效果如下: 解决方案参看以下文章 img图片之间的间距问题

  6. NetCore MemoryCache使用

    引用类库 1.Install-Package Microsoft.Extensions.Caching.Memory MemoryCacheOptions 缓存配置 1.ExpirationScanF ...

  7. SpannableStringBuilder实现图文混排

    1.我的后面添加图片 ssb = new SpannableStringBuilder("我的后面添加图片: "); ssb.setSpan(, , Spannable.SPAN_ ...

  8. NGUI 源码分析- UIWidgetInspector

    NGUI Version 3.9.0 //---------------------------------------------- // NGUI: Next-Gen UI kit // Copy ...

  9. .Net Core HTTP Error 500.0 - ANCM In-Process Handler Load Failure 发布后启动错误处理

    方法1: 应用池高级配置 - 启动32位应用程序 - 设置为True 方法2: web.config <aspNetCore processPath="%LAUNCHER_PATH%& ...

  10. .NET Core 3.0之深入源码理解Host(一)

    写在前面 ASP .NET Core中的通用主机构建器是在v2.1中引入的,应用在启动时构建主机,主机作为一个对象用于封装应用资源以及应用程序启动和生存期管理.其主要功能包括配置初始化(包括加载配置以 ...