## 編寫切割腳本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