作者:慌瓜 | 来源:互联网 | 2017-05-13 02:17
当在使用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教程有兴趣的朋友有所帮助。