上篇是学习了日志在conf/nginx.conf配置文件里面的配置。今天来学习日志的切分。
日志的切分:我们在日常生活中,对nginx日志的分析非常重要,通常需要运维去对nginx的日志进行切割和分析处理。其实日志的切分就是实现一个定时任务,去处理nginx日志。
步骤:
第一步,分析如何去实现日志的切分(就是对日志文件定期备份),编写shell脚本。
你可以在windows里面创建一个log.sh文件,编辑这个文件,将shell脚本放到里面。
BACK_DIR=/usr/local/nginx
BACK_FILE_NAME=host.access.log
CURRENT_PATH=$BACK_DIR/logs
BAK_PATH=$BACK_DIR/datalogs
CURRENT_FILE=$CURRENT_PATH/$BACK_FILE_NAME
BAK_TIME=/bin/date -d yesterday +%Y%m%d%H%M
BAK_FILE=$BAK_PATH/$BAK_TIME-$BACK_FILE_NAME
echo $BAK_FILE #打印备份文件文件名
$BACK_DIR/sbin/nginx -s stop #停止nginx服务
mv $CURRENT_FILE $BAK_FILE #移动日志文件到目标文件里免去
$BACK_DIR/sbin/nginx #启动nginx服务
或者你可以直接在centos系统里面进行编辑,这个我就不介绍了(进入到nginx根目录里面,vim ./sbin/log.sh,把上面的代码放进去就好)。
第二步:定时任务对脚本进行调度;
退回到命令行界面,执行 :第二步:crontab -e ,进行定时脚本的编辑
0 0 * * * /usr/local/nginx/sbin/log.sh
#执行的corn表达式,可以百度了解
#后面的是你log.sh文件存放的路径,也就是你shell脚本存放路径
定时任务每天00:00执行脚本/usr/local/nginx/sbin/log.sh,实现定时自动分割Nginx日志(包括访问日志和错误日志),这样Nginx每天都会生成一个新的日志文件。
然后它每天就会去切分日志文件了,将日志文件切分到你指定的备份目录。