#!/bin/bash
#Program:
# Auto cut nginx log files
#backup nginx log
#cp -r /opt/logs/swiftlive/nginx/ /opt/backup/nginx/
#Create the DIR place of logs
mkdir -p /opt/logs/swiftlive/nginx/$(date -d "yesterday" +"%Y%m%d")
#set the path to nginx log files
log_files_path="/opt/logs/swiftlive/nginx/"
#set the path of the nginx logs need to mv
log_files_dir="/opt/logs/swiftlive/nginx/$(date -d "yesterday" +"%Y%m%d")/"
#set nginx log files you want to cut,but not include '.log'
log_files_name=(api.access.error.log api.access.log image.access.error.log image.access.log imagewsa.access.error.log imagewsa.access.log sc.access.error.log sc.access.
log srsmonitor108.access.error.log srsmonitor108.access.log srsmonitor109.access.error.log srsmonitor109.access.log srsmonitor.access.error.log srsmonitor.access.log ss
l_admin.access.error.log ssl_admin.access.log ssl_api.access.error.log ssl_api.access.log ssl_dvr.access.error.log ssl_dvr.access.log ssl_image.access.error.log ssl_im
age.access.log ssl_imagewsa.access.error.log ssl_imagewsa.access.log ssl_payment.access.log ssl_swiftlive_payment.access.error.log ssl_web.access.error.log ssl_web.acce
ss.log)
#Set how long you want to save
save_days=30
log_files_num=${#log_files_name[@]}
#set a time variable
TIME=$(date -d "yesterday" +"%d/%b/%Y")
#cut nginx log files
for((i=0;i<$log_files_num;i++));do
cat ${log_files_path}${log_files_name[i]} |grep $TIME>>${log_files_dir}${log_files_name[i]}
done
~