linux将访问日志切成每天,最简单自动切割 nginx 访问日志示例
网站上线后,没怎么注意过日志,有一天需要查日志时,才发现竟然有 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 访问日志示例相关推荐
- Linux自动切割及删除日志脚本
1.创建脚本,给脚本可执行权限 创建脚本:vim cron.sh 先贴上脚本代码 #!/bin/sh . /etc/profile . ~/.bash_profile cat /data/xcx/lo ...
- Nginx 访问日志配置
目录 一.Nginx 访问日志介绍 二.语法及默认值 三.配置实战 1.修改配置文件 2.日志变量说明 3.真实日志分析 四.参考资料 正文 回到顶部 一.Nginx 访问日志介绍 Nginx 软件会 ...
- 【nginx运维基础(4)】Nginx的日志管理(日志格式与定时分割日志)
Nginx日志主要分为两种:访问日志和错误日志.日志开关在Nginx配置文件(一般在server段来配置)中设置,两种日志都可以选择性关闭,默认都是打开的. 访问日志access_log #日志格式设 ...
- 自动生成web服务器日志解析规则
2019独角兽企业重金招聘Python工程师标准>>> 当前web服务器的多样化使得访问日志的数据清洗变得越来越复杂,企业需要投入专业的数据清洗人员编写数据清洗规则(解析规则或者解析 ...
- 使用Nginx访问日志统计PV和UV
一个网站当用户量增大时候,不可避免有统计pv和uv的需求. UV(Unique Visitor):独立访客,以cookie为依据区分不同访客,UV计算一天之内(00:00-24:00),访问网站的访客 ...
- logstash 过虑nginx访问日志
标题是不是可以翻译成这样:logstash Filters nginx access log 好了,进入正题,日志管理服务器我用ElasticSearch+LogStash+Kibana+Redis ...
- linux中用shell脚本对tomcat和nginx做日志切割
Tomcat日志catalina.out切割小脚本 #!/bin/bash #cut tomcat catalina.out yesterday=`date +"%F" -d &q ...
- nginx程序访问linux任意目录,通过nginx访问linux目录
http { ...... autoindex on; autoindex_exact_size off; autoindex_localtime on; server { listen 80; .. ...
- NGINX访问日志和错误日志
Logs are very useful to monitor activities of any application apart from providing you with valuable ...
最新文章
- Spring Boot Admin 2.5.5 发布,支持在线重启服务
- 不要再问我“Java GC垃圾回收机制”了
- CVPR 2017 《Deep Feature Flow for Video Recognition》论文笔记
- c语言dp算法,C++动态规划dp算法题
- 前缀,中缀,后缀表达式求值
- 使用 google_breakpad 分析 Electron 崩溃日志文件
- Ubuntu使用技巧集锦(持续追加中……)
- 犀牛Rhino中Grasshopper插件中的millipede千足虫插件安装方法
- android 迅雷 好用版本,迅雷不限速版本安卓下载-迅雷不限速版 安卓版v6.6.6-PC6安卓网...
- 深入浅出GAMP算法(上): 因子图与消息传递算法
- [shell][原创]shell脚本遍历文件夹下所有文件
- 如何重新设置Windows10密码
- 计算机汉字50字一分钟,一分钟的演讲稿一分钟演讲稿50字
- 利用ADB固定Android手机的CPU频率
- TDA4VM中各个CPU对应的名字
- 多个微信服务号对接一个微信商户号流程
- Altium Designer 如何从已有的PCB图、原理图,分别导出PCB封装库和原理图封装库
- tomcat配置 详解
- 08 Cesium—影像服务-1
- golang gorilla websocket例子
热门文章
- python数据运算
- 2014-01-01
- C语言中printf(built: %s %s,__TIME__,__DATE__);方便调试
- java单利模式写法
- 项目:飞凌单片机boa服务器遇到问题总结
- 计算机网络——TCP/IP参考模型和五层参考模型
- java integer 包_java之学习基本类型包装类的概述及Integer类的概述和构造方法
- vue 找回密码_vue实现个人信息查看和密码修改功能
- redis实例python_生产消费者模式与python+redis实例运用(基础篇)
- 动态规划——数塔问题