## 编写切割脚本nginx
[root@wy ~]# vim /usr/local/nginx/sbin/nginx_logrotate.shvim
#!/bin/bashbash
d=`date -d "-1 day" +%F`ide
[ -d /tmp/nginx_log ] || mkdir /tmp/nginx_logspa
mv /tmp/access.log /tmp/nginx_log/$d.log日志
/etc/init.d/nginx reload >/dev/null 2>&1ip
cd /tmp/nginx_logit
gzip -f $d.logclass
解释说明:配置
date -d "-1 day" +%F 获得前一天的日期指定日期;
[ -d /tmp/nginx_log ] || mkdir /tmp/nginx_log mv /tmp/access.log /tmp/nginx_log/$d.log这两行表示/tmp/nginx_log目录不存在就建立,而后把日志移动并重命名(标记日期时间的);
/etc/init.d/nginx reload从新加载nginx的配置文件,目的是: 日志移动过去以后,确定还要从新生成它(/tmp/access.log);
还能够再作一些后续的操做,好比日志比较大,咱们能够进行一下压缩gzip,-f的目的是若是你的日志已经存在过,已经压缩过,它确定会产生同名的一个压缩文件,它的目的就是不去提醒咱们,强制地覆盖。
备注:能够把此脚本放到任务计划中,天天凌晨去执行这个脚本
## 执行脚本
[root@wy ~]# sh -x /usr/local/nginx/sbin/nginx_logrotate.sh
++ date -d '-1 day' +%F
+ d=2016-11-10
+ '[' -d /tmp/nginx_log ']'
+ mv /tmp/access.log /tmp/nginx_log/2016-11-10.log
+ /etc/init.d/nginx reload
从新载入 Nginx: [肯定]
+ cd /tmp/nginx_log
+ gzip -f 2016-11-10.log
## 查看到/tmp/access.log又回来了
[root@wy ~]# ls /tmp/access.log
/tmp/access.log
[root@wy ~]# cat !$
cat /tmp/access.log
## 查看到了日志压缩文件
[root@wy ~]# ls /tmp/nginx_log/
2016-11-10.log.gz