图文详解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网站服务如何配置防盗链(推荐)
Mar 31 Servers
Nginx+SpringBoot实现负载均衡的示例
Mar 31 Servers
Nginx进程管理和重载原理详解
Apr 22 Servers
Nginx进程调度问题详解
Sep 25 Servers
详解使用内网穿透工具Ngrok代理本地服务
Mar 31 Servers
阿里云ECS云服务器快照的概念以及如何使用
Apr 21 Servers
阿里云服务器部署RabbitMQ集群的详细教程
Jun 01 Servers
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
Jun 01 Servers
Tomcat安装使用及部署Web项目的3种方法汇总
Aug 14 Servers
Nginx 502 bad gateway错误解决的九种方案及原因
Aug 14 Servers
Windows Server 2016服务器用户管理及远程授权图文教程
Aug 14 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代码优化及php相关问题总结
2006/10/09 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
PHP随机生成唯一HASH值自定义函数
2015/04/20 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
JQuery调用绑定click事件的3种写法
2015/03/28 Javascript
jQuery获得指定元素坐标的方法
2015/04/14 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
微信小程序 引用其他js文件实现代码
2017/02/22 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
vue设计一个倒计时秒杀的组件详解
2019/04/06 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
Python RuntimeError: thread.__init__() not called解决方法
2015/04/28 Python
python常见数制转换实例分析
2015/05/09 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
机器学习python实战之决策树
2017/11/01 Python
python生成器,可迭代对象,迭代器区别和联系
2018/02/04 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
python如何从文件读取数据及解析
2019/09/19 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
python实现手势识别的示例(入门)
2020/04/15 Python
如何在Windows中安装多个python解释器
2020/06/16 Python
Python如何自动获取目标网站最新通知
2020/06/18 Python
python GUI计算器的实现
2020/10/09 Python
大学活动总结范文
2014/04/29 职场文书
市场开发与营销专业求职信范文
2014/05/01 职场文书
导游词之北京明十三陵
2019/10/28 职场文书
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python