for ngix_i in `ls /app/local` do #设置临时变量 nginx_dir=`basename${ngix_i}` if ( echo"$nginx_dir"|grep "nginx" > /dev/null ); then # echo $nginx_dir #设置日志文件存放目录 logs_path="/app/local/$nginx_dir/logs/" #设置备份日志存放目录 logs_bak="/app/local/$nginx_dir/logs/bak/" #设置pid文件 pid_path="/app/local/$nginx_dir/logs/nginx.pid" #判断目录是否存在 if [ ! -d "$logs_path" ]; then continue fi #判断文件是否存在 if [ ! -e "$pid_path" ]; then continue fi #判断目录是否存在 if [ ! -d "$logs_bak" ]; then mkdir -p "$logs_bak" fi cd${logs_path} logfiles=(`ls *.log`)
array_i=0 #迁移日志循环模块 for i in${logfiles[@]}; do #设置临时变量 j=`basename${i}` #重命名并迁移日志文件 baklogname=${j}_$(date -d "yesterday" +"%Y%m%d%H%M%S") baklognames[$array_i]=$baklogname mv${i}${logs_bak}${baklogname} array_i=`expr$array_i + 1` done
#向nginx主进程发信号重新打开日志 kill -USR1 `cat${pid_path}` cd${logs_bak} #压缩日志循环模块 for i in${baklognames[@]}; do #压缩并删除原日志 tar -zcvf ${i}.tar.gz ${i} --remove-files > /dev/null 2>&1 done