nginx web服務器中access日誌,默認是不能按時間分隔的,每第二天志都是打在access.log上,這樣長此以往這個日誌文件就特別的大,也不利於清理和管理,故此咱們確定是須要作時間上的切割的,那麼如何作到完美的切割的呢?linux
咱們採起的方案是利用shell腳本和crontab定時任務來作nginx
好比新建一個nginx_time_log.sh腳本,裏面的內容以下
(固然也能夠使用linux中的logrotate來作日誌切割)web
local_path=/home/work/tp/log/webserver #找到您服務器中存放access日誌的目錄shell
cd $local_path #進入這個目錄bash
mv access_log $local_path/access_log date +%Y%m%d%H
#把當前的access_log挪到這個時期下,其實就是至關於日誌的切分服務器
nginx_pid=ps -ef |grep -v grep |grep 「nginx: master process 「|awk -F」 」 ‘{print $2}’
#找到您nginx的進程spa
kill -USR1 $nginx_pid
#執行usr1日誌
這樣就會先把access_log 移動到一個access_log.時間 的日誌文件,而且會新生產一個access_log文件code
最後經過定時任務來讓這個nginx_time.sh腳本按每小時來進行切分server
0 /1 sh /xxx(您這個腳本的存放命令)/nginx.sh 按每小時切割