更新发布脚本(查找所有大小为0的文件并删除后再发布)

时间:2021-07-07 05:59:11

执行脚本

####################################################################

#!/bin/bash

dt=`date +%Y%m%d-%T`
echo $dt >> /root/update/update.log


echo $dt >> /root/update/update1.log
echo $dt >> /root/update/ClearAndUpdate.log
/usr/bin/rsync -vzrtopg --progress  --delete  /usr/local/apache-tomcat-7.0.41/webapps/ROOT/public/cpscp  /usr/local/apache-tomcat-7.
0.41/webapps/ROOT/update/ >> /root/update/update1.log
#/usr/bin/rsync -vzrtopg --progress  --delete  /usr/local/apache-tomcat-7.0.41/webapps/ROOT/cpscp  /usr/local/apache-tomcat-7.0.41/w
ebapps/ROOT/update/ >> /root/update/update1.log


/root/update/ClearAndUpdate.sh  /usr/local/apache-tomcat-7.0.41/webapps/ROOT/update/cpscp  >> /root/update/ClearAndUpdate.log


#/usr/bin/rsync -vzrtopg --progress  --delete -e  'ssh -p 22'  /usr/local/apache-tomcat-7.0.41/webapps/ROOT/cpscp/   10.242.200.227:
/usr/local/apache2/htdocs/web1   >> /root/update/update.log 


#/usr/bin/rsync -vzrtopg --progress  --delete -e  'ssh -p 22'  /usr/local/apache-tomcat-7.0.41/webapps/ROOT/userfiles/   10.242.200.
227:/usr/local/apache2/htdocs/userfiles   >> /root/update/update.log 




echo $dt >> /root/update/update.log


#####################################################################################

调用脚本

#####################################################################################

#!/bin/bash
##################
. /etc/profile
. ~/.bash_profile
##################


i=0
k=0
l=0


echo "`date +%Y%m%d%H%M`" > /tmp/size0.log
# 定义一个方法
foreachd(){
# 遍历参数1
for file in $1/*
do
# 如果是文件就打印处理,然后继续遍历,递归调用
        if [ -d $file ]
        then
#                echo $file
                foreachd $file
        else
                filesize=`ls -l  $file | awk '{print $5}' `


                if [ "$filesize" = "0" ];then
                        echo "$file  size is 0" >> /tmp/size0.log
                        a[$k]="$file"
                        k=`expr $k + 1`
                        rm -f $file
                fi
                i=`expr $i + 1`
                echo "$file size is $filesize"
        fi
done
}


weberror(){


        if [ "${#a[*]}" -eq "0" ];then


                echo "所有文件size均大于0"
#               exit 0
        else
                echo "总共检测 ${#a[*]}个size大小为0文件"  



                for ((j=0; j<=`expr "${#a[*]}" - 1`;j++)) ;do
#                       echo "${a[0]}"
                        if [ -f ${a[$j]} ];then


                                echo "`date +%Y%m%d%H%M%S` ${a[$j]}  删除失败"
                                b[$l]="`date +%Y%m%d%H%M%S` ${a[$j]}  删除失败"
                                l=`expr $l + 1`


                        else


                                echo "`date +%Y%m%d%H%M%S` ${a[$j]}  删除成功"


                        fi
#       echo "`date +%Y%m%d%H%M%S` ${a[$j]}"                                    
 #       echo "`date +%Y%m%d%H%M$S` ${a[$j]}"  | mail -s "`date +%Y%m%d%H%M$S` ${a[$j]}" $notice_mail                               
                done




#        time2=`date +%Y%m%d%H%M%S`
#        echo "$time1 $time2"


#        exit 2
fi


}


update(){


        if [ "${#b[*]}" -eq "0" ];then


                echo "所有size大小为0文件均已删除,`date +%Y%m%d%H%M`开始更新。" >> /root/update/update.log
                /usr/bin/rsync -vzrtopg --progress  --delete -e  'ssh -p 22'  /usr/local/apache-tomcat-7.0.41/webapps/ROOT/update/cp
scp/   10.242.200.227:/usr/local/apache2/htdocs/web1   >> /root/update/update.log
                /usr/bin/rsync -vzrtopg --progress  --delete -e  'ssh -p 22'  /usr/local/apache-tomcat-7.0.41/webapps/ROOT/userfiles
/   10.242.200.227:/usr/local/apache2/htdocs/img/userfiles   >> /root/update/update.log


        else 


                echo "总共有${#b[*]}个size大小为0文件没有删除,停止更新。" >> /root/update/update.log


        fi
}

#echo  "总共有$i 个页面,其中size 为0的页面有`expr `more /tmp/size0 | wc -l` - 1`个"


# 执行,如果有参数就遍历指定的目录,否则遍历当前目录
#if ($0 > 0)
if [[ ! -z $1 ]];then
    foreachd "$1"
        weberror
        update
#       echo $#
#       echo 1


echo  "`date +%Y%m%d%H%M%S`总共有$i 个页面,其中size 为0的页面有${#a[*]}个,删除了`expr ${#a[*]} - ${#b[*]}`个size 为0的页面。"


else


        echo "没有指定目录"
        exit


    foreachd `/bin/pwd`
        weberror
        update
#       pwd=`pwd`
#       echo 2
#       echo $#
#    foreachd "./"


echo  "`date +%Y%m%d%H%M%S`总共有$i 个页面,其中size 为0的页面有${#a[*]}个,删除了`expr ${#a[*]} - ${#b[*]}`个size 为0的页面。"


fi

#####################################################################################