首先第一为什么要日志切割?
当用户量越来越大,常年内积下来后,过大的日志积累导致我们无法很好的分析具体的日志
其次我们的切割对象又是什么?
在001篇幅中我们在makefile的时候做了如下的配置
方框中的两个日志就是我们要切割的对象
如何切nginx日志?
通过shell脚本进行切割,使用touch命令创意一个cat_log.sh,放在sbin目录下
touch cat_log.sh
#!/bin/bash
LOG_PATH="/var/log/nginx/"
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
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
kill -USR1 `cat ${PID}`
授予权限后才能使用
chmod +x cat_log.sh
记得要重启nginx,效果如下
定时任务加持
先要安装定时任务,一般本地的虚拟机都是自带的
yum install crontabs
安装完成可以先用crontab -l 查看一下当前有没有定时任务,下图是我的服务自带的一个
通过以下命令添加定时任务
crontabs -e
定时任务为
*/1 * * * * /user/local/nginx/sbin/cat_log.sh
当然添加完成之后我们要重启定时任务的服务
service crond restart
效果如下