图文详解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限制并发连接请求数的方法
Apr 01 Servers
Nginx缓存设置案例详解
Sep 15 Servers
nginx共享内存的机制详解
Mar 21 Servers
Nginx动静分离配置实现与说明
Apr 07 Servers
在Docker容器中部署SQL Server
Apr 11 Servers
nginx容器方式反向代理实战
Apr 18 Servers
openstack云计算keystone组件工作介绍
Apr 20 Servers
Windows server 2012 配置Telnet以及用法详解
Apr 28 Servers
nginx七层负载均衡配置详解
Jul 15 Servers
Docker容器harbor私有仓库部署和管理
Aug 05 Servers
nginx sticky实现基于cookie负载均衡示例详解
Dec 24 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和ACCESS写聊天室(二)
2006/10/09 PHP
php生成无限栏目树
2017/03/16 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
javascript 随机展示头像实现代码
2011/12/06 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
jquery预加载图片的方法
2015/05/27 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
AngularJS使用ocLazyLoad实现js延迟加载
2017/07/05 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
详解javascript对数组和json数组的操作
2019/04/15 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
分享Python文本生成二维码实例
2016/01/06 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
python中cPickle类使用方法详解
2018/08/27 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
Djang的model创建的字段和参数详解
2019/07/27 Python
django 单表操作实例详解
2019/07/30 Python
python实现的批量分析xml标签中各个类别个数功能示例
2019/12/30 Python
利用SVG和CSS3来实现一个炫酷的边框动画
2015/07/22 HTML / CSS
Linux如何为某个操作添加别名
2015/02/05 面试题
四年级数学教学反思
2014/02/02 职场文书
《世界多美呀》教学反思
2014/03/02 职场文书
QQ空间主人寄语大全
2014/04/12 职场文书
岗位说明书范文
2014/05/07 职场文书
顶岗实习协议书
2015/01/29 职场文书
司机岗位职责范本
2015/04/10 职场文书
社区青年志愿者活动总结
2015/05/06 职场文书
给领导敬酒词
2015/08/12 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
python 中的jieba分词库
2021/11/23 Python