Linux

Nginx日志自动切割

都知道Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器,但他的日志实在太挫了....所有日志都输出到一个文件中..随着网站运行时间的增长,日志文件的大小也在不断的增长....这对经常瞎折腾的我来说太不方便了... 所以需要将日志按天进行分割...

 

创建日志切割脚本:

#!/bin/bash
#此脚本用于自动分割Nginx的日志,包括access.log和error.log
#每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-xx-xx.log格式,并重新打开日志文件
#Nginx日志文件所在目录
LOG_PATH=/var/log/nginx/
#获取昨天的日期
YESTERDAY=`date +%Y%m%d`
#获取pid文件路径
PID=/var/run/nginx/nginx.pid
#分割日志
mv ${LOG_PATH}access.log ${LOG_PATH}access-${YESTERDAY}.log
mv ${LOG_PATH}error.log ${LOG_PATH}error-${YESTERDAY}.log
#向Nginx主进程发送USR1信号,重新打开日志文件
kill -USR1 `cat ${PID}`

添加执行权限

chmod +x /root/bash_list/access_nginx_log.sh

添加计划任务,每天凌晨定时分割日志

[root@Nginx_1 bash_list]# crontab -l
*/1  * * * *   sh /root/bash_list/black_list.sh
1 3  * * *   sh /root/bash_list/backup.sh
00 00 * * *  sh /root/bash_list/access_nginx_log.sh
[root@Nginx_1 bash_list]# 

效果如下

[root@Nginx_1 bash_list]# cd /var/log/nginx/
[root@Nginx_1 nginx]# ll
总用量 676
-rw-r--r-- 1 nginx root 267815 10月 31 23:58 access-20171101.log
-rw-r--r-- 1 nginx root 397790 11月  1 16:59 access.log
-rw-r--r-- 1 nginx root   8081 10月 31 22:50 error-20171101.log
-rw-r--r-- 1 nginx root   1721 11月  1 08:42 error.log
[root@Nginx_1 nginx]# 

 

(3)

本文由 樱花博客 作者:樱花 发表,转载请注明来源!

关键词:,

热评文章

发表评论