線上環境NGINX日志,一直是疊加方式增長,每天日志量大概是50G。因為文件太大,不便於運維過濾error log,所以針對NGINX,結合每小時的日志量,寫了如下切割腳本
1 # /bin/bash 2 3 #time@2019年3月14日 4 #name@劉啟明 5 #function@NGINX日志切割 6 7 8 #NGINX日志路徑 9 base_path='/sdb1/nginx/logs' 10 11 12 #創建目錄時間 當天時間 例如:2019-03-14 13 #log_path=$(date -d yesterday +"%Y%m%d") #該參數是創建前一天數據,如需要當天備份,可使用 14 log_path=$(date +"%Y%m%d") 15 16 17 #日志創建時間 18 #date=$(date -d yesterday +"%Y-%m-%d-%H")#該參數是創建前一天數據,如需要當天備份,可使用 19 date=$(date +"%Y-%m-%d-%H") 20 21 22 #在NGINX日志路徑下創建以當天時間命名的目錄 23 mkdir -p $base_path/$log_path 24 25 26 #將備份日志 27 mv $base_path/access.log $base_path/$log_path/access_$date.log 28 29 30 #NGINX日志重讀 31 kill -USR1 `cat /sdb1/nginx/logs/nginx.pid`
通過計划任務執行該腳本,計划任務格式自行百度
0 */1 * * * /usr/local/script/nginx_cutting.sh