Nginx是没有以日期格式做为文件名来存储的,也就是说,Nginx不像Tomcat,天天自动生成一个日志文件,全部的日志都是以一个名字来存储,时间久了日志文件会变得很大。这样很是不利于分析。虽然nginx没有这个功能但咱们能够写一个小脚本配合计划任务来达到这样的效果。即让Nginx天天产生一个日志文件,方便咱们进行后续的数据分析。nginx
首先,咱们要建立一个脚本文件,用来分割Nginx日志,具体脚本以下:vim
vim /usr/local/nginx-1.19.1/cutnginxlog.sh
复制代码
脚本内容以下:bash
#!/bin/sh
# Program:
# Auto cut nginx log script.
# nginx日志路径
LOGS_PATH=/usr/local/nginx-1.19.1/logs
TODAY=$(date -d 'today' +%Y-%m-%d)
# 移动日志并更名
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${TODAY}.log
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${TODAY}.log
# 向nginx主进程发送从新打开日志文件的信号
kill -USR1 $(cat /usr/local/nginx-1.19.1/logs/nginx.pid)
复制代码
接下来就是给cutnginxlog.sh文件受权。微信
chmod a+x cutnginxlog.sh
复制代码
接下来添加计划任务,定时执行cutnginxlog.sh脚本,以root用户执行以下命令:并发
echo '59 23 * * * root /usr/local/nginx-1.19.1/cutnginxlog.sh >> /usr/local/nginx-1.19.1/cutnginxlog.log 2>&1' >> /etc/crontab
复制代码
意思就是在天天的23点59分执行脚本。将自动任务的执行日志(错误和正确的日志)自动写入cutnginxlog.log,“命令 >> 2>&1” 表示以追加方式将正确输出和错误输出都保存到同一个文件中。分布式
好了,今天就聊到这儿吧!别忘了点个赞,给个在看和转发,让更多的人看到,一块儿学习,一块儿进步!!微服务
若是你以为冰河写的还不错,请微信搜索并关注「 冰河技术 」微信公众号,跟冰河学习高并发、分布式、微服务、大数据、互联网和云原生技术,「 冰河技术 」微信公众号更新了大量技术专题,每一篇技术文章干货满满!很多读者已经经过阅读「 冰河技术 」微信公众号文章,成功跳槽到大厂;也有很多读者实现了技术上的飞跃,成为公司的技术骨干!若是你也想像他们同样提高本身的能力,实现技术能力的飞跃,进大厂,升职加薪,那就关注「 冰河技术 」微信公众号吧,天天更新超硬核技术干货,让你对如何提高技术能力再也不迷茫!高并发