nginx日志切割保存
发布时间:2020-09-17 14:44:22 浏览次数:619
!!一般网站的访问日志和错误日志都是打开的,但是nginx的日志都是单个文件,时间长了,文件难免会变得太大,而且会影响服务器性能,因此有必要对nginx日志进行每日切割保存,减小文件大小,同时也更方便查看日志。
实现思路
shell脚本+定时任务+nginx信号控制,完成日志定时切割
具体步骤
在需要保存日志或者是其他目录,新建一个shell脚本。一般shell脚本都是.sh来标识:
1、创建一个文件"touch /root/nginx/logs/savelog.sh",然后使用vim编辑该文件,编辑内容如下:
#标名这个脚本是使用bin目录下bash去执行 #!/bin/bash #安装目录下日志文件 base_log_path='/www/wwwlogs/xxx.log' base_error_path='/www/wwwlogs/xxx.error.log' #需要保存的目录位置 log_path='/www/wwwlogs/xxx/' #获取月份 log_month=$(date -d yesterday +"%Y%m") #获取前一天日期 (第二天凌晨备份,即保存的日志就是当天时间的日志) log_day=$(date -d yesterday +"%d") #在指定位置创建文件夹 mkdir -p $log_path/$log_month #将安装目录下的日志文件,移动到指定存储位置 mv $base_log_path $log_path/$log_month/access_$log_day.log mv $base_error_path $log_path/$log_month/error_$log_day.log #再使用信号控制切割日志 #USR1 表示nginx信号控制,切割日志 详见[nginx信号控制](https://blog.csdn.net/weixin_38111957/article/details/81023124) kill -USR1 `cat /www/server/nginx/logs/nginx.pid`1234567891011121314151617181920212223242526
2、设置定时任务 输入命令"crontab -e"来设置linux定时任务 ,写入设置如下:
#每天凌晨0点切割日志 * 0 * * * /root/nginx/logs/savelog.sh
-
- 帮助中心
-
- 店主之家
-
- 支付方式
-
- 售后服务
-
- 客服中心
-
- 关于我们
-
- 视频文章