欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-26 23:49:35
...

一、引言

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

二、实现思路

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`

 

相关标签: 定时切割