网站上线后,没怎么注意过日志,有一天需要查日志时,才发现竟然有 100 多个 G,一个文本文件竟然有 100 多个G,这也太大了。

nginx 是一个非常轻量的 web 服务器,体积小、性能高、速度快等诸多优点。但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个,不会自动地进行切割,如果访问量很大的话,将导致日志文件容量非常大,不便于管理。当然了,我们也不希望看到这么庞大的一个访问日志文件,那需要手动对这个文件进行切割。

整体思路:

由于 nginx 的日志,都是写在一个文件中的,具体由我们的 nginx.conf 配置文件来决定,比如 access.log,那么我们可以在每天晚上 12 点,也就是每天0点,把这个 access.log 文件,重新命名一下,比如命令为 access_2017-11-22.log,之后再让 nginx 重新写一个 access.log 文件,这样就可以达到每天一个日志文件,之后再想去查找,或管理,也方便很多啦。

具体实现:

整个操作只涉及到了 重命名文件,以及让 nginx 重新打开一下日志文件,所以可以简单的来讲一个 shell 脚本来实现,再结合 linux crontab 计划任务,让脚本在每天零点执行即可。

脚本如下:

cat /usr/local/nginx/sbin/cut_nginx_logs.sh

#!/bin/bash

#指定 nginx 日志文件路径

Logs_Path=/usr/local/nginx/logs

#获取昨天的日期

Yesterday=$(date -d"yesterday" +%Y-%m-%d)

#重命名日志文件

mv ${Logs_Path}/access.log ${Logs_Path}/access_${Yesterday}.log

#给nginx 进程发送指令,重新打开日志文件

kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)

PS: kill 命令必须要有,如果 nginx 没有重新打开日志文件,则不会向新的文件写入日志,还会继续向原来的日志文件写入。

contab 设置:

contab -e

0 0 * * * /bin/bash /usr/local/nginx/sbin/cut_nginx_log.sh

PS:具体周期可自行调整 脚本中的 date 命令和 crontab,比如,两天,一周,一个月等

linux将访问日志切成每天,最简单自动切割 nginx 访问日志示例相关推荐

  1. Linux自动切割及删除日志脚本

    1.创建脚本,给脚本可执行权限 创建脚本:vim cron.sh 先贴上脚本代码 #!/bin/sh . /etc/profile . ~/.bash_profile cat /data/xcx/lo ...

  2. Nginx 访问日志配置

    目录 一.Nginx 访问日志介绍 二.语法及默认值 三.配置实战 1.修改配置文件 2.日志变量说明 3.真实日志分析 四.参考资料 正文 回到顶部 一.Nginx 访问日志介绍 Nginx 软件会 ...

  3. 【nginx运维基础(4)】Nginx的日志管理(日志格式与定时分割日志)

    Nginx日志主要分为两种:访问日志和错误日志.日志开关在Nginx配置文件(一般在server段来配置)中设置,两种日志都可以选择性关闭,默认都是打开的. 访问日志access_log #日志格式设 ...

  4. 自动生成web服务器日志解析规则

    2019独角兽企业重金招聘Python工程师标准>>> 当前web服务器的多样化使得访问日志的数据清洗变得越来越复杂,企业需要投入专业的数据清洗人员编写数据清洗规则(解析规则或者解析 ...

  5. 使用Nginx访问日志统计PV和UV

    一个网站当用户量增大时候,不可避免有统计pv和uv的需求. UV(Unique Visitor):独立访客,以cookie为依据区分不同访客,UV计算一天之内(00:00-24:00),访问网站的访客 ...

  6. logstash 过虑nginx访问日志

    标题是不是可以翻译成这样:logstash Filters nginx access log 好了,进入正题,日志管理服务器我用ElasticSearch+LogStash+Kibana+Redis ...

  7. linux中用shell脚本对tomcat和nginx做日志切割

    Tomcat日志catalina.out切割小脚本 #!/bin/bash #cut tomcat catalina.out yesterday=`date +"%F" -d &q ...

  8. nginx程序访问linux任意目录,通过nginx访问linux目录

    http { ...... autoindex on; autoindex_exact_size off; autoindex_localtime on; server { listen 80; .. ...

  9. NGINX访问日志和错误日志

    Logs are very useful to monitor activities of any application apart from providing you with valuable ...

最新文章

  1. Spring Boot Admin 2.5.5 发布,支持在线重启服务
  2. 不要再问我“Java GC垃圾回收机制”了
  3. CVPR 2017 《Deep Feature Flow for Video Recognition》论文笔记
  4. c语言dp算法,C++动态规划dp算法题
  5. 前缀,中缀,后缀表达式求值
  6. 使用 google_breakpad 分析 Electron 崩溃日志文件
  7. Ubuntu使用技巧集锦(持续追加中……)
  8. 犀牛Rhino中Grasshopper插件中的millipede千足虫插件安装方法
  9. android 迅雷 好用版本,迅雷不限速版本安卓下载-迅雷不限速版 安卓版v6.6.6-PC6安卓网...
  10. 深入浅出GAMP算法(上): 因子图与消息传递算法
  11. [shell][原创]shell脚本遍历文件夹下所有文件
  12. 如何重新设置Windows10密码
  13. 计算机汉字50字一分钟,一分钟的演讲稿一分钟演讲稿50字
  14. 利用ADB固定Android手机的CPU频率
  15. TDA4VM中各个CPU对应的名字
  16. 多个微信服务号对接一个微信商户号流程
  17. Altium Designer 如何从已有的PCB图、原理图,分别导出PCB封装库和原理图封装库
  18. tomcat配置 详解
  19. 08 Cesium—影像服务-1
  20. golang gorilla websocket例子

热门文章

  1. python数据运算
  2. 2014-01-01
  3. C语言中printf(built: %s %s,__TIME__,__DATE__);方便调试
  4. java单利模式写法
  5. 项目:飞凌单片机boa服务器遇到问题总结
  6. 计算机网络——TCP/IP参考模型和五层参考模型
  7. java integer 包_java之学习基本类型包装类的概述及Integer类的概述和构造方法
  8. vue 找回密码_vue实现个人信息查看和密码修改功能
  9. redis实例python_生产消费者模式与python+redis实例运用(基础篇)
  10. 动态规划——数塔问题