上一章讲解了nginx的目录加密功能,本章重点介绍nginx的日志切割。

笨办法学linux:nginx入门详解(五)- 目录加密​zhuanlan.zhihu.com

在第二章,我们探讨了nginx的常用命令,如果还不熟悉,可以去看着练习几遍。

笨办法学linux:nginx入门详解(二)- 常用命令实战​zhuanlan.zhihu.com

我们可以通过"/usr/local/nginx/sbin/nginx -s"命令向nginx的主进程(master进程)发送信号,这些信号有stop、quit、reopen、以及reload。

那么其中的reopen,就是我们今天的主角,我们可以使用reopen来实现日志切割。

第一步:进入日志目录:

cd /usr/local/nginx/logs/

第二步:重命名日志文件:

]# mv access{,.$(date +%F)}.log]# ls
access.2019-07-24.log   error.log  nginx.pid

ps:重命名后,nginx日志仍然会写入到"access.2019-07-24.log"文件中,并不会自动创建一个新的"access.log"文件。

即使你手动创建了一个新的"access.log"文件,nginx仍然会把日志写入到重命名后的"access.2019-07-24.log"文件中。

这是因为nginx进程读写日志文件时,是通过文件描述符去操作的,虽然我们修改了原"access.log"文件的文件名,但是原文件描述符与文件本身的对应关系仍然存在。

所以,重命名后,我们需要让nginx重新打开一个新文件,以便将新的日志写入到新文件中。

第三步:发送信号:

nginx -s reopen执行完上述命令后,日志目录中自动生成了一个新的"access.log"文件,
再次访问nginx,会发现新生成的日志已经写入到了新生成的"access.log"文件中了。

原理解析:

发送信号,其实是执行:

kill -USR1 `cat /usrlocal/nginx/logs/nginx.pid`

以上两种方式都可以实现日志切割,你可以任意选择。

定期执行:

日志切割时企业中常规动作,我们不会每天去手工执行一遍命令,通常是让脚本自己执行,于是我们可以将这个动作写进任务计划,每天凌晨自动执行。

脚本:

#!/bin/bash
#by lutixia
#########################s_log="/usr/local/nginx/logs/access.log"
d_log="/data/backup/nginx-$(date +%F).log"
d_log_dir="/data/backup"#判断备份目录是否存在,不存在则创建
if [ ! -d "$d_log_dir" ];thenmkdir -p "$d_log_dir"
fi#判断原日志文件是否存在,存在则移动并改名
if [ -f "$s_log" ];thenmv "$s_log" "$d_log"
fi#以下两条命令任选其一:
#kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`/usr/local/nginx/sbin/nginx -s reopenif [ $? -eq 0 ];thenecho "$(date +%F) 日志切割成功"
fi

写入任务计划:

在/var/spool/cron/root文件中添加如下代码,每天11:59分自动切割日志:59  23  *  *  *  /bin/sh  nginx_cut_log.sh >>/tmp/nginx_cut.log 2>&1

到这里简单的日志切割工作就完成啦。

这将是nginx系列文章,可关注同名微信公众号:笨办法学linux ,获取最近文章更新及精品软件,软件持续更新中。

linux 日志按大小切割_nginx入门详解(六)- 日志切割相关推荐

  1. 日志切割工具cronolog详解

    日志切割工具cronolog详解 大家都知道apache服务器,默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计.本文主要讲解Web服务器日志切割工具cronolog,下面我们就来详细 ...

  2. FFmpeg入门详解之87:HLS直播协议详解

    引言与效果演示 ----------------------------------------- FFmpeg431的官方地址已经无法打开, 我将ffmepg4.3.1的开发包和源码上传到了百度云: ...

  3. FFmpeg入门详解之102:HLS直播协议详解

    引言与效果演示 ----------------------------------------- FFmpeg431的官方地址已经无法打开, 我将ffmepg4.3.1的开发包和源码上传到了百度云: ...

  4. linux查看根目录使用率,Linux 查看空间使用情况的实例详解

    Linux 查看空间使用情况的实例详解 在日常的Linux巡检中,我们会遇到文件系统目录使用空间很高的情况,例如如下利用"df -h "查看到根目录空间使用超过80%.而我们仅仅知 ...

  5. linux查看空间使用情况并且清除,科技常识:Linux 查看空间使用情况的实例详解...

    今天小编跟大家讲解下有关Linux 查看空间使用情况的实例详解 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关Linux 查看空间使用情况的实例详解 的相关资料,希望小伙伴会喜欢也能够帮助 ...

  6. FFmpeg入门详解之117:视频监控的架构和流程

    几张架构图带您快速了解视频监控 图一 图二 图三 图四 视频监控系统的简介 视频监控 视频监控是安全防范系统的重要组成部分,英文Cameras and Surveillance.传统的监控系统包括前端 ...

  7. linux中的文件夹压缩文件,linux将文件拷贝到目录下Linux下文件的压缩与打包详解...

    在Linux中,有很多的压缩命令.利用这些压缩命令,可以方便的从网络上下载大型的文件.同时,我们知道,Linux文件的扩展名是没有特殊意义的,不过,因为Linux下存在着许多压缩命令,所以为了方便记忆 ...

  8. Java Spring框架入门详解教程【多测师_何sir】

    Spring框架入门详解教程 spring概述 spring结构 spring IOC spring DI spring概述 Spring是一个非常活跃的开源框架, 它是一个基于IOC和AOP来构架多 ...

  9. dockerk8s入门详解

    docker&k8s入门详解 一.Docker 1.1 什么是Docker 1.2为什么要使用docker? 1.更快速的交付和部署 2.更高效的虚拟化 3.更轻松的迁移和扩展 4.更简单的管 ...

最新文章

  1. 彪悍的人生不需要解释
  2. 网路神警上网行为管理系统 v3.4.5官方版
  3. svn 合并和树冲突
  4. 使用JDBC连接数据库(MySQL)的源代码
  5. 前端笔记之ES678WebpackBabel(上)初识ES678Babellet和const解构语法
  6. VC++下使用ADO编写数据库程序 – 操作大全
  7. Android系统(24)---Android应用架构
  8. Jar 包依赖冲突排查思路和解决方法(logback + slf4j-log4j12)
  9. BZOJ1296[SCOI2009] 粉刷匠
  10. 机器人技术基础pdf
  11. 进制转换函数 Java
  12. leapftp,小编悄悄告诉你leapftp是什么
  13. 英语思维导图大全 连词(六)
  14. JAVA基础-06.集合-14.【List、Set】
  15. [论文阅读](不确定性系列)
  16. 北邮智能车仿真培训(五)—— 数据可视化工具的使用
  17. vsto画箱体图 箱线图 xlboxwhisker
  18. 如何备考2021年最后一场PMP考试?
  19. Android 虚拟键盘相关功能大全
  20. 三相光伏10KW并网逆变器。 全套原理图/PcB,源代码,均无实物

热门文章

  1. 动态链接库与静态链接库
  2. Kraken采用CashAddr地址,BCH地址统一向前一步
  3. 企业 - php nginx memcache
  4. 蓝桥杯利用字母可以组成一些美丽的图形,
  5. 火电电厂相关业务知识
  6. 输入http://localhost/,apache出现You don't have permission to access/on this server.的提示,如何解决?...
  7. sublime text 2 c++编译 环境 问题小结
  8. win10下用Linux搭建pythonnodejs开发环境
  9. nginx的pid问题
  10. 在shell中编写函数