nginx日志分割脚本

此文档只针对linux分割nginx日志

nginx日志不自动带日志分割功能,需要自己写脚本分割日志,并加入到每日任务中,定期分割、存储、删除日志

此脚本包括,日志分割、保存、删除、重建日志文件

 

#!/bin/bash

#date +%Y%m%d%H%M%S
YEAR=`date +%Y`
MONTH=`date +%m`
DAY=`date +%d`
HOUR=`date +%H`
MINUTE=`date +%M`
SECOND=`date +%S`

#pid path
pid_path="/portal/software/nginx/logs/nginx.pid"
#LOG path
LOGDIR=/portal/software/nginx/logs/back_up_log/
LOGDIR2=/portal/software/nginx/logs/sotp_error_log/

#  Screening log files
LOGNAME=`ls /portal/software/nginx/logs/ |grep "\.log"`
#Create the LOGDIR
#mkdir -p $LOGDIR1
#mkdir -p $LOGDIR2

#Move the log file to new position, and change the name

for i in ${LOGNAME}
do
#LOG name
LOGFILE=${i}-$YEAR"-"$MONTH"-"$DAY"-"$HOUR$MINUTE$SECOND
mv -f  /portal/software/nginx/logs/$i ${LOGDIR}/${LOGFILE} && touch /portal/software/nginx/logs/$i

done
#  reload nginx process
kill -USR1 `cat ${pid_path}`
#  remove logs 6 days ago
/usr/bin/find  $LOGDIR -name "*" -mtime +6 | /usr/bin/xargs rm -f

加入日常任务

crontab -e

00 01 * * * /bin/sh /opt/cronjob/mysql_daily_backup.sh

注:  前面五项,分别是 分、时、日、月、周  上面意思是每天的晚上一点执行日志分割脚本

保存后,重启crond任务

/etc/init.d/crond restart

 

posted @ 2019-08-28 17:26  彷徨123  阅读(352)  评论(0编辑  收藏  举报