1、日誌分割的要求
nginx
因爲 Tengine 的日誌都是寫在一個文件當中的,所以,咱們須要天天零點將前一天的日誌存爲另一個文件,這裏咱們就將 Tengine 位於 logs 目錄中的 access.log 存爲 access_[yyyy-MM-dd].log 的文件。其實 logs 目錄中還有個 error.log 的錯誤日誌文件,這個文件也須要天天切割一個,在這裏就說 access.log 了,error.log 的切割方法相似。bash
2、Linux平臺下的日誌分割ide
在 Linux 平臺上進行切割,須要使用 date 命令以得到昨天的日期、使用 kill 命令向 Nginx 進程發送從新打開日誌文件的信號,以及 crontab 設置執行任務週期。spa
先建立一個 Shell 腳本,以下:(這裏個人日誌目錄在/var/log/tengine-2.1.1/)rest
vi Tengine-log-qiege日誌
#!/bin/bashorm
## 零點執行該腳本進程
## Tengine 日誌文件所在的目錄crontab
LOGS_PATH=/var/log/tengine-2.1.1/it
## 獲取昨天的 yyyy-MM-dd
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
## 移動文件
mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log
mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log
## 向 Tengine 主進程發送 USR1 信號。USR1 信號是從新打開日誌文件
kill -USR1 $(cat /usr/local/tengine-2.1.1/logs/nginx.pid)
3、設置計劃任務,此處設置爲天天00:00執行一次
# vi /etc/crontab
0 0 * * * root /home/Tengine-log-qiege
# service crond restart
# chkconfig crond on
至此Tengine的日誌分割已完成。