侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

根据发布压缩包中的目录备份服务器上的相应目录到备份目录

2023-11-15 星期三 / 0 评论 / 0 点赞 / 45 阅读 / 5471 字

#!/usr/bin/bash curr_dir="/data/update" Date=`date +"%Y%m%d"` today=`date +"%Y%m%d-%H%M%S"` #comp_pg

#!/usr/bin/bash

curr_dir="/data/update"

Date=`date +"%Y%m%d"`
today=`date +"%Y%m%d-%H%M%S"`

#comp_pg="web-0420.zip"
#comp_pg="web-0420v1.zip"
comp_pg="ceshi.zip"

home_dir=""

dst_dir=""


#####日志格式定义及路径输出
logdir="/data/log/back"          #日志路径
log=$logdir/log"$today".log                            #日志文件 
is_font=1                                      #终端是否打印日志: 1打印 0不打印 
is_log=1                                       #是否记录日志: 1记录 0不记录
[[ -d $logdir ]]||mkdir -p $logdir             #确保日志目录存在


datef(){
    date "+%Y-%m-%d %H:%M:%S"
}

print_log(){
    if [[ $is_log -eq 1  ]];then
        [[ -d $logdir ]] || mkdir -p $logdir
        echo -e "[ $(datef) ] $1" >> $log
    fi
    if [[ $is_font -eq 1  ]];then
        echo -e "[ $(datef) ] $1"
    fi
}

#####压缩包目录判断,因有个目录比较特殊,其中有个子目录不更新,但是太大,所以单独区分,tar格式用 tar -tf
judge_dir() {
    wwwroot_sum=$(unzip -l $comp_pg |grep wwwroot|wc -l)
    if [[ $wwwroot_sum -eq 0 ]];then
        print_log "没有wwwroot目录,不需要备份他"
        back_dir=$(unzip -l $comp_pg |awk '{print $4}' |grep /$|awk -F"/" '{print $1}' |sort -rn |uniq -c|awk '{print $2}')
        for dir in $back_dir
        do
            #cp -ar $home_dir/$dir $dst_dir/$dir/$today
            if [[ $? -eq 0 ]];then
                print_log "$dir 备份成功"
            else 
                print_log "$dir 备份失败"
            fi
        done
    else
        print_log "wwwroot目录存在,需要单独备份他"
        back_dir=$(unzip -l $comp_pg |grep -v wwwroot |awk '{print $4}' |grep /$|awk -F"/" '{print $1}' |sort -rn |uniq -c|awk '{print $2}')
                for dir in $back_dir
                do
                       # cp -ar $home_dir/$dir $dst_dir/$dir/$today
                        if [[ $? -eq 0 ]];then
                                print_log "$dir 备份成功"
                        else
                                print_log "$dir 备份失败"
                        fi
                done    
        unzip -l $comp_pg |grep wwwroot|awk '{print $4}' |grep -v /$ >$curr_dir/$today.txt
        while read line 
        do
            echo "${line%/*}" >> $curr_dir/"$Date"_bak.txt
        done < $curr_dir/$today.txt
        www_back_dir=`cat $curr_dir/"$Date"_bak.txt |sort -rn |uniq -c`
        for www_back in $www_back_dir
        do 
            # cp -ar $home_dir/$www_back $dst_dir/$www_back$today
            if [[ $? -eq 0 ]];then
                                print_log "$www_back 备份成功"
                        else
                                print_log "$www_back 备份失败"
                        fi
        done

    fi

}

cd $curr_dir
rm -f *.txt

judge_dir
 

广告 广告

评论区