图文详解nginx日志切割的实现


Posted in Servers onJanuary 18, 2022

实现nginx的日志切割

(注:为什么要切割呢?因为当你用户访问量大的时候,可能日志也很大。)

《1》:ll /usr/local/nginx/logs/  查看日志 (注:有两个日志,一个是访问日志,另一个是错误日志。)

图文详解nginx日志切割的实现

《2》:tail -f /usr/local/nginx/logs/access.log  查看访问日志

图文详解nginx日志切割的实现

《3》:vim /opt/cut_nginx_log.sh  编写一个脚本

《4》:脚本内容:

#!/bin/bash
 
#cut_nginx_log.sh
 
datetime=$(date -d "-1 day" "+%Y%m%d")
 
log_path="/usr/local/nginx/logs"
 
pid_path="/usr/local/nginx/logs/nginx.pid"
 
[ -d $log_path/backup ] || mkdir -p $log_path/backup
 
if [ -f $pid_path ]
 
then
 
mv $log_path/access.log $log_path/backup/access.log-$datetime
 
kill -USR1 $(cat $pid_path)
 
find $log_path/backup -mtime +30 | xargs rm -f
 
else
 
echo "Error,Nginx is not working!" | tee -a /var/log/messages
 
fi

图文详解nginx日志切割的实现

注释:

#!/bin/bash

#cut_nginx_log.sh



datetime=$(date -d "-1 day" "+%Y%m%d")        //时间,date -d "-1 day"代表日期减1

log_path="/usr/local/nginx/logs"             //日志的存放位置

pid_path="/usr/local/nginx/logs/nginx.pid"   //进程的PID号,有PID号代表 进程还活着

[ -d $log_path/backup ] || mkdir -p $log_path/backup   //如果$log_path/backup不是一个目录则创

建$log_path/backup目录

if [ -f $pid_path ]                                //如果$pid_path是一个文件

then

mv $log_path/access.log $log_path/backup/access.log-$datetime  //那么移动旧日志的文件到新目录

下以此来实现分割

kill -USR1 $(cat $pid_path)                                    //USR1代表信号,他会给进程传一

个信号让进程生成一个新的日志

find $log_path/backup -mtime +30 | xargs rm -f                //查找30天前的日志并删除

else

echo "Error,Nginx is not working!" | tee -a /var/log/messages  //否则提示nginx is not working且追加到日志中

fi

(注:kill 信号,信号有64种。)

《5》:chmod +x /opt/cut_nginx_log.sh   给脚本添加执行权限

《6》:crontab -e   写计划任务

《7》:写入

*/5     *       *       *       *       /usr/sbin/ntpdate pool.ntp.org > /dev/null 2

>&1

0       0       *       *       *       /opt/cut_nginx_log.sh

图文详解nginx日志切割的实现

《7》:/opt/cut_nginx_log.sh  执行脚本

《8》:ls /usr/local/nginx/logs  查看日志目录下(注:下面中access.log是新的访问日志,backup里面是老的访问日志。)

图文详解nginx日志切割的实现

《9》:ls /usr/local/nginx/logs/backup/ 查看

图文详解nginx日志切割的实现

《10》:tailf /usr/local/nginx/logs/access.log   查看访问日志(注:tailf 是等同tail -f的)

图文详解nginx日志切割的实现

《11》:在浏览器中访问

《11》:tailf /usr/local/nginx/logs/access.log  在去访问,他下面会出现

图文详解nginx日志切割的实现

面试题讨论:

说明Nginx的访问日志记录在 access.log文件中。

1、如果将access.log重命名为a.log时,新产生的日志写到哪儿?为什么?

答案:日志将会写入到a.log 文件中,因为重命名后文件的 Inode,没有变化,文件系统是根据Inode查找文件的。

2、如果此时将 Nginx服务重启后,新产生的田志写到哪儿?为什么?

答案:日志将会写入到新的access.log文件中,因为重启时会加载Nginx的配置文件,配置文件中是通过文件名指定日志的,所以会创建新的日志。

总结

到此这篇关于图文详解nginx日志切割实现的文章就介绍到这了,更多相关nginx日志切割内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
nginx如何将http访问的网站改成https访问
Mar 31 Servers
nginx优化的六点方法
Mar 31 Servers
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
Mar 31 Servers
配置nginx 重定向到系统维护页面
Jun 08 Servers
深入解析Apache Hudi内核文件标记机制
Mar 31 Servers
利用nginx搭建RTMP视频点播、直播、HLS服务器
May 25 Servers
windows server 2012安装FTP并配置被动模式指定开放端口
Jun 10 Servers
Apache POI操作批量导入MySQL数据库
Jun 21 Servers
Linux中各个目录的作用与内容
Jun 28 Servers
如何让你的Nginx支持分布式追踪详解
Jul 07 Servers
GPU服务器的多用户配置方法
Jul 07 Servers
windows10 家庭版下FTP服务器搭建教程
Aug 05 Servers
Nginx防盗链与服务优化配置的全过程
Jan 18 #Servers
使用 Apache 反向代理的设置技巧
NGINX 权限控制文件预览和下载的实现原理
Nginx虚拟主机的搭建的实现步骤
Jan 18 #Servers
Nginx下SSL证书安装部署步骤介绍
Dec 06 #Servers
教你快速构建一个基于nginx的web集群项目
Nov 27 #Servers
Linux安装apache服务器的配置过程
Nov 27 #Servers
You might like
关于PHP中的Class的几点个人看法
2006/10/09 PHP
php调用mysql数据 dbclass类
2011/05/07 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
Thinkphp中Create方法深入探究
2014/06/16 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
yii用户注册表单验证实例
2015/12/26 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
JavaScript触发器详解
2007/03/10 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
jQuery实现立体式数字滚动条增加效果
2016/12/21 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
浅析为什么a="abc" 不等于 a=new String("abc")
2017/10/25 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
2019/11/14 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
2020/07/21 Javascript
Python中is与==判断的区别
2017/03/28 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
Python如何合并多个字典或映射
2020/07/24 Python
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
大学教师年终总结的自我评价
2013/10/29 职场文书
写好自荐信要注意的问题
2013/11/10 职场文书
农林环境专业求职信
2014/03/13 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
老人祝寿主持词
2014/03/28 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
运动会通讯稿300字
2015/07/20 职场文书
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis