LNMP详解(十六)——Nginx日志切割
今天继续给大家介绍Linux运维相关知识,本文主要内容是Nginx日志切割。
一、Nginx日志切割原因
在企业生产环境中,Nginx的web服务器每天都会产生大量的日志信息,并且Nginx本身不会对访问日志进行切割,这就导致了Nginx日志量不断增大,不利于后期对日志的访问。基于此,我们在生产环境中,需要使用shell脚本+crontab定时任务的方式对Nginx日志进行切割。
二、Nginx日志特性
在进行Nginx切割脚本编写前,我们必须先了解Nginx日志的一些特性。Nginx对于日志的记录,时使用了定位符进行定位,因此,在Nginx启动后,我们即使将Nginx日志移动到其他位置,Nginx本身会向移动后的日志文件继续写入日志信息,而不是严格根据配置文件内容,在日志文件处创建新的日志文件并进行写入。基于这一特性,我们不能编写将Nginx日志不断的移动或者重命名到其他位置的SHELL脚本视图实现Nginx日志切割。
我们可以执行命令:
ll /proc/【Nginx主进程PID】/fd/
来查看Nginx的日志标识符,如下所示:
从上图可以看出,该目录下有链接文件,指向的是Nginx的日志位置,我们将Nginx日志移动后,发现链接也会跟着改变,如下所示:
只有将Nginx重新启动后,Nginx日志才会丢失对该日志的定位,并且根据配置文件的内容重新创建Nginx日志。因此,我们在编写Nginx日志切割脚本时,当我们移动Nginx日志后,必须reload重启Nginx服务。
三、Nginx日志切割脚本
最后,根据上述原理,我们编写Nginx日志切割的脚本,如下所示:
#!/bin/bash
# 2022-02-19
# writed by pzz
# used to cut the nginx log
SOURCE_LOG=/usr/local/nginx/logs/access.log
DESTINATION_LOG=/usr/local/nginx/backup/`date +%Y%m%d`
echo $DESTINATION_LOG
if [ ! -d $DESTINATION_LOG ];then
mkdir -p $DESTINATION_LOG
fi
mv $SOURCE_LOG $DESTINATION_LOG
/usr/local/nginx/sbin/nginx -s reload
echo "The log of the Nginx has been cut!"
上述脚本的原理与本文第二章介绍基本相同,就是尝试移动Nginx日志,并重启Nginx服务。
上述脚本写完后,我们还要将该脚本放入定时任务中,执行命令:
crontab -e
然后写入如下内容:
0 5 * * * /bin/bash /usr/local/nginx/nginx_log_cut.sh >> /usr/local/nginx/nginx_log_cut.log 2>&1
让该脚本每天5点对日志进行自动切割,这样,该脚本就会在每天5点自动执行,对Nginx日志进行切割了。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
相关文章
- nginx日志格式分析
- 7.Nginx实践之使用Lua-nginx模块脚本连接Redis数据库读取静态资源并隐式展现
- FileBeat收集Nginx的日志到ELK中进行可视化分析
- 如何开启MySQL慢查询日志
- Nginx负载均衡策略_nginx高可用集群和负载均衡集群
- Nginx Error_log 错误日志配置和解释
- Log4j2日志 不健全
- clickhouse导入原始nginx日志数据
- Centos下yum安装Nginx报错 No package nginx available.详解程序员
- nginx的日志配置详解程序员
- 日志Linux排查错误之旅:查看错误日志(linux查看错误)
- Linux下安装Nginx的步骤详解(linux下安装nginx)
- 情况Linux下查看Nginx进程状态:一招即通(linux查看nginx进程)
- Linux 查看日志命令简明指南(linux看日志命令)
- 日志Linux删除Nginx日志:简易清理方式(linux删除nginx)
- 服务如何在Linux中删除Nginx服务(linux删除nginx)
- Linux删除Nginx:快速安全的方式(linux删除nginx)
- Linux中如何快速删除Nginx(linux删除nginx)
- 配置Linux下快速删除Nginx配置的技巧(linux删除nginx)
- Linux下如何安全删除Nginx(linux删除nginx)
- Linux 系统日志清理工作(linux日志删除)
- Oracle服务记录:追踪日常表现(oracle服务日志)
- Nginx网站架构实战——12、nginx gzip压缩提升网站速度
- 《nginx官方文档》记录日志到syslog
- MSSQL镜像备份: 日志传送保障数据安全(mssql镜像 日志传送)
- 删除Redis日志实现优化的可行性(删除redis日志)
- 日志Oracle保留一天的归档日志重新定义安全性(oracle保留一天归档)
- nginx日志配置指令详解