2: 宣告乙個獨特的log_format並命名
在下面的server/location,我們就可以引用 mylog
在server段中,這樣來宣告
nginx允許針對不同的server做不同的log ,(有的web伺服器不支援,如lighttp)
access_log logs/access_8080.log mylog;
宣告log log位置 log格式;
實際應用: shell+定時任務+nginx訊號管理,完成日誌按日期儲存
分析思路:
凌晨00:00:01,把昨天的日誌重新命名,放在相應的目錄下
再usr1資訊號控制nginx重新生成新的日誌檔案
vim /usr/local/nginx/logs/nginx_logs_day.sh
具體指令碼: (我的是吧整個日誌放到了昨天的資料夾下了)
#!/bin/bash
base_path='/usr/local/nginx/logs'
log_path=$(date -d yesterday +"%y%m%d")
day=$(date -d yesterday +"%d")
mkdir -p $base_path/$log_path
mv $base_path/*.log $base_path/$log_path/
kill -usr1 `cat /usr/local/nginx/logs/nginx.pid`
也可以單獨切割某個 以access.log為例
#!/bin/bash
base_path='/usr/local/nginx/logs'
log_path=$(date -d yesterday +"%y%m")
day=$(date -d yesterday +"%d")
mkdir -p $base_path/$log_path
mv $base_path/access.log $base_path/$log_path/access_$day.log
#echo $base_path/$log_path/access_$day.log
kill -usr1 `cat /usr/local/nginx/logs/nginx.pid`
新增許可權 chmod +x /usr/local/nginx/logs/nginx_logs_day.sh
定時任務
crontab -e 編輯定時任務、
01 00 * * * /usr/local/nginx/logs/nginx_logs_day.sh 每天0時1分(建議在02-04點之間,系統負載小)
有的是用cp,先把日誌複製了,然後再把日誌清空 這樣的好處是不用從啟nginx
MySQL支援按年月日查詢
在業務環境中,總是想要篩選出不同時間條件下的資料,例如我只想查詢當天資料,當月資料或者本年資料。於是就想通過mysql自帶的幾個時間函式進行簡單的實現。select from cars location where year create time year now and month create...
nginx 日誌切割定時
1.安裝定時任務 yum install crontabs 1 usr local nginx sbin cut my log.sh 3.重啟定時任務 service crond restart 附 常用定時任務命令 service crond start 啟動服務 service crond st...
nginx按小時切割日誌
有的日誌比較大,一天的日誌就有200g一台機器,如果按天切割日誌,檔案太大了,需要按小時切割日誌。下面講述乙個按小時切割日誌的方法,通過apache的cronolog來完成日誌的切割。1 首先安裝日誌切割 yum install httpd 2 配置nginx的日誌落地檔名,比如 opt log a...