服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Nginx - 图文详解nginx日志切割的实现

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

2022-07-24 13:09BK_小小关 Nginx

这篇文章主要给大家介绍了关于nginx日志切割实现的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

实现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》:脚本内容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/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日志切割的实现

注释:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/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》:写入

?
1
2
3
4
5
*/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日志切割内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/m0_54434140/article/details/122489739

延伸 · 阅读

精彩推荐
  • Nginxnginx 配置服务启动的教程详解

    nginx 配置服务启动的教程详解

    本文给大家详细介绍了nginx 配置服务启动的相关知识,非常不错,具有一定的参考借鉴价值,感兴趣的朋友跟随脚本之家小编一起学习吧 ...

    LL_KK19926232019-12-19
  • NginxNginx从搭建到配置支持HTTPS的方法

    Nginx从搭建到配置支持HTTPS的方法

    这篇文章主要介绍了Nginx从搭建到配置支持HTTPS的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下 ...

    寒松4072019-12-24
  • Nginx在阿里云Centos下如何安装Nginx

    在阿里云Centos下如何安装Nginx

    这篇文章主要介绍了阿里云Centos下如何安装Nginx,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。 ...

    pkufork4392019-11-15
  • NginxNginx禁止指定UA访问的方法

    Nginx禁止指定UA访问的方法

    这篇文章主要介绍了Nginx禁止指定UA访问的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...

    南琴浪博客7782019-12-14
  • Nginxnginx处理http请求实现过程解析

    nginx处理http请求实现过程解析

    这篇文章主要介绍了nginx处理http请求实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参...

    浅笑14632021-01-05
  • Nginxnginx+rsync+inotify实现负载均衡配置方法

    nginx+rsync+inotify实现负载均衡配置方法

    这篇文章主要介绍了nginx+rsync+inotify实现负载均衡配置方法,需要的朋友可以参考下 ...

    运维笔记4892019-10-24
  • NginxNginx 禁止IP访问 只允许域名访问

    Nginx 禁止IP访问 只允许域名访问

    今天要在Nginx上设置禁止通过IP访问服务器,只能通过域名访问,这样做是为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网,从网络...

    Nginx教程网4092019-11-14
  • Nginx利用nginx如何匹配多个条件

    利用nginx如何匹配多个条件

    这篇文章主要给大家介绍了利用nginx如何匹配多个条件的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下...

    Carey8662019-11-29