天天看點

Nginx 日志切割腳本(學習筆記五)

#!/bin/bash

#原nginx日志存放路徑

log_files_path="/home/wwwlogs/"

#nginx切割後存放路徑

log_files_dir=${log_files_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")

  #待切割日志名稱集合如access.log error.log

log_files_name=(access error)

#nginx啟動腳本路徑

nginx_sbin="/usr/local/nginx/sbin/nginx"

#日志儲存時間

save_days=30

#建立存放目錄

mkdir -p $log_files_dir

log_files_num=${#log_files_name[@]}

#循環切割日志

for((i=0;i<$log_files_num;i++));do

mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}/${log_files_name[i]}_$(date -d "yesterday" +"%Y%m%d").log

done

#删除超過30天的日志檔案

find $log_files_path -mtime +$save_days -exec rm -rf {} \;

#重新開機nginx服務,重新生成新的檔案

$nginx_sbin -s reload

腳本放好後,接下來就可以建立一個計劃任務來執行這個腳本,首先給這個腳本授予可執行權限:

chmod +x cut_nginx_logs.sh

然後建立計劃任務:

crontab -e

添加一行任務:

00 00 * * * /bin/bash /home/crontab/cut_nginx_logs.sh

繼續閱讀