Nginx日志管理——每天定时自动保存Nginx日志文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38111957/article/details/81154333

一、引言

这个日志随着时间的增长,访问量越来越大的情况下,文件会越来越大。这个时候就需要我们把之前的日志做一个备份,然后用重新生成一个日志文件。如果这个工作量让每天人为去做,还得到半夜,估计没人愿意干这活。 这个时候就有必要写一个定时任务,每天让系统自己去帮我操作,这样岂不是完美。

二、实现思路

shell脚本+定时任务+nginx信号控制,完成日志定时切割

三、具体实现

在你需要保存日志或者是其他目录,新建一个shell脚本。一般shell脚本都是.sh来标识:

1、创建一个文件"touch savelog.sh",然后使用vim编辑该文件,编辑内容如下:

2、设置定时任务 输入命令"crontab -e"来设置linux定时任务 ,写入设置如下:

* 0 * * * /root/nginx/logs/getlogs.sh,前面时间可以随意更改

3、注意注意 :

     如果需要复制脚本内容,请把我写的解释去掉,shell脚本是不支持//注释的

     定时任务的时间规则,这里就不多解释,不懂的小伙伴麻烦百度一下。

//标名这个脚本是使用bin目录下bash去执行
#!/bin/bash 

//安装目录下日志文件
base_path='/usr/local/nginx/logs/access.log'

//需要保存的目录位置
log_path='/root/nginx/logs'

//获取月份
log_month=$(date -d yesterday +"%Y%m")

//获取当天日期
log_day=$(date -d yesterday +"%d")

//在指定位置创建文件夹
mkdir -p $log_path/$log_month

//将安装目录下的日志文件,移动到指定存储位置
mv $base_path $log_path/$log_month/accuess_$log_day.log

//再使用信号控制切割日志
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

猜你喜欢

转载自blog.csdn.net/weixin_38111957/article/details/81154333