naginx를 사용하다 보면 접속 로그가 점점 커지고 GB급에 이를 수 있으니 분할해야 하는데,
시간별로 분할해 봤는데,
#!/bin/bash #访问日志文件位置 nginx_path="/usr/local/nginx/logs/" bak_path="/usr/local/nginx/logs/dowload/" #本程序log位置 包含文件名 log_path="/usr/local/nginx/logs/mv_log.log" #文件夹名称英文逗号分隔 access_name="dir1,dir2,dir3,dir4,dir5,dir6" #nginx pid文件位置 nginx_pid_path="/usr/local/nginx/logs/nginx.pid" DATE=$(date +%Y-%m-%d ) log_time=$(date +%Y-%m-%d_%H:%M:%S) echo "time ${DATE}" echo $log_time OLD_IFS="$IFS" IFS="," arr=($access_name) IFS="$OLD_IFS" echo "####################### mv log ${log_time} #####################################" >>${log_path} for s in ${arr[@]} do src_path=$nginx_path"/"$s"/"access_$s.log #echo $nginx_path"/"$s"/"access_$s.log echo "####($s)_ start_${log_time} ####" >> ${log_path} if [ -f "$src_path" ]; then mv $src_path $bak_path$s"/"access_${log_time}.log 2>> ${log_path} #防止文件过大或过多 每个进行复制和发送变量 kill -USR1 `cat ${nginx_pid_path}` #echo " $s move Success " >>${log_path} else echo "##($s)_NOT_FIND_FILE_${log_time} ##" >> ${log_path} fi echo "####($s)_end_${log_time} ######" >> ${log_path} echo " " >>${log_path} done echo "######################## END LOG #################################################" >> ${log_path} echo "" >>${log_path} echo "" >>${log_path}
위의 내용을 포함하여 nginx 또는 tengine 액세스 로그 분할 처리에 대해 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.