nginx中access日誌如何作到按時間完美切割

nginx web服務器中access日誌,默認是不能按時間分隔的,每第二天志都是打在access.log上,這樣長此以往這個日誌文件就特別的大,也不利於清理和管理,故此咱們確定是須要作時間上的切割的,那麼如何作到完美的切割的呢?linux

咱們採起的方案是利用shell腳本和crontab定時任務來作nginx

好比新建一個nginx_time_log.sh腳本,裏面的內容以下
(固然也能夠使用linux中的logrotate來作日誌切割)web

!/bin/bash

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

crontab命令以下:

0 /1 sh /xxx(您這個腳本的存放命令)/nginx.sh 按每小時切割

clipboard.png

相關文章
相關標籤/搜索