目前nginx已经成为软负载里最受欢迎的工具了,具有轻量级、低消耗、易扩展等优势。目前我们生产上也在使用nginx,但是nginx默认的日志没有按天切割,都是存放在一块的,不方便查阅,所以想写个shell脚本来是先nginx日志的按天分割。
1、环境说明
linux系统
nginx 版本: nginx/1.6.2【可以通过./nginx -V 查看哟】
nginx安装路径:/jboss/nginx
nginx当前日志路径:/jboss/nginx/logs/access.log
2、脚本思路【按天分割日志】
a、获取昨天的日期(date -d yesterday +%Y%m%d),用来作为分割后日志的名称
b、将源日志文件移动到新的nohuplogs文件夹里,并按时间重命名
c、在源日志文件夹(logs)里新建默认日志文件(access.log)
d、给nginx一个信号量,重新打开日志
f、设置一个定时任务,定时执行日志切割的脚本
3、操作步骤
a、新建日志分割的文件夹nohuplogs(mkdir /jboss/nginx/nohuplogs)
b、编写脚本,暂且命名为:splitlogs.sh吧,脚本内容如下:
LOGPATH=/jboss/nginx/logs/access.log BASEPATH=/jboss/nginx/nohuplogs LOGBAK=$BASEPATH/$(date -d yesterday +%Y%m%d).log #echo $LOGBAK mv $LOGPATH $LOGBAK touch $LOGPATH kill -USR1 `cat /jboss/nginx/logs/nginx.pid`
c、配置定时任务 crontab -e,如下图,增加日志分割的脚本,每天晚上23点59分切割