方式一:
nginx cronolog日誌分割配置文件,根據下面方法,每分鐘分割一次nginx訪問日誌。
1.nginx日誌配置
access_log access_log /data/access_log_pipe main;
2.先建立乙個命名管道
mkfifo /www/log/access_log_pipe
3.配置cronolog:
nohup cat /data/access_log_pipe | /usr/local/sbin/cronolog /data/log/domain.access_%y%m%d%h%m.log &
4.啟動nginx
/usr/local/nginx/sbin/nginx
注意:cronolog必須在nginx啟動前啟動
沒有安裝cronolog的話,需要先安裝
wget
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make
make install
方式二:
定時任務中每小時新增定時任務,執行一下指令碼,可以實現小時日誌分割
log_dir="/var/log/nginx"
date_dir=`date +%y/%m/%d/%h`
/bin/mkdir -p $/$ > /dev/null 2>&1
/bin/mv $/access.log $/$/access.log
kill -usr1 `cat /opt/nginx/logs/nginx.pid`
方式三:
logrotate看名字就知道是專門做日誌輪詢的,只把任務配置放在/etc/logrotate.d/下,任務就會自動完成,而且無需安裝,系統自帶,比較推薦使用.
vi /etc/logrotate.d/nginx
/usr/local/nginx/logs/www.willko.cn.log /usr/local/nginx/logs/nginx_error.log
多個日誌以空格分開,
notifempty 如果日誌為空則不做輪詢
daily 每天執行一次
postrotate 日誌輪詢後執行的指令碼
這樣,每天都會自動輪詢,生成nginx.log.1-n
後話:2868 access_201112182030.log
7777 access_201112182031.log
7626 access_201112182032.log
7873 access_201112182033.log
3530 access_201112182034.log
29674 total
並沒有因為切分檔案而丟失日誌。
nginx 切割日誌檔案
1.首先編寫shell指令碼 cutlog.sh 放入nginx logs資料夾中 首先定義路徑變數 logs path usr local nginx logs 獲取昨天的 yyyy mm dd d date y m d 移動檔案 mv access.log log 向 nginx 主程序傳送 u...
Nginx 日誌檔案切割
阿里雲的nginx好久沒檢視過日誌,現在需要配置定時任務實現,日誌檔案切割,並刪除超過30天的日誌檔案。log.sh 指令碼檔案 bin bash 獲取當前時間 yyyy mm dd hh mm ss 格式 nowtime date y m d h m s cd usr local nginx mv...
nginx日誌檔案切割
建立指令碼logcut.sh,放到 opt nginx sbin下 在windows下編輯,可以把dos轉unix格式 bin bash 零點執行該指令碼 nginx 日誌檔案所在的目錄 logs path opt nginx logs 獲取昨天的 yyyy mm dd yesterday date...