bvac

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

写这个脚本也加深了对 bash 数组的理解。

#!/bin/bash
#2015-11-23
echo -e "说明:\n将文件放在/app/tmp_class目录下,保证该目录下没有其他文件\n备份目录在/app/tmp下以时间命名\n\n"
echo "1./app/tomcat/"
echo "2./app/tomcat_8081/"
echo "3./app/tomcat_thirdparty/"
read -p "选择替换哪一个tomcat下的文件?   " num
case $num in
    1)
        files=($(find /app/tmp_class/ -type f))
        for file in "${files[@]}"
        do
            file_name=$(basename "$file")
            file_dir=`dirname $file`
            dst_dir=($(find /app/tomcat/webapps -type f -name "${file_name}" -exec dirname {} \;))
            if [ ${#dst_dir[@]} -eq 1 ];then
                rsync -a -b --backup-dir=/app/tmp/$(date +%m%d_%H_%M) $file ${dst_dir[0]}
            elif [ ${#dst_dir[@]} -gt 1 ];then
                echo $file"在以下目录中都存在,请手工 cp -a"
                echo ${dst_dir[@]}
            else
                echo $file"不存在,不知道怎么替换!"
                echo "请手动cp"
            fi
        done
    ;;
    2)
        files=($(find /app/tmp_class/ -type f))
        for file in "${files[@]}"
        do
            file_name=$(basename "$file")
            file_dir=`dirname $file`
            dst_dir=($(find /app/tomcat_8081/webapps -type f -name "${file_name}" -exec dirname {} \;))
            if [ ${#dst_dir[@]} -eq 1 ];then
                rsync -a -b --backup-dir=/app/tmp/$(date +%m%d_%H_%M) $file ${dst_dir[0]}
            elif [ ${#dst_dir[@]} -gt 1 ];then
                echo $file"在以下目录中都存在,请手工 cp -a"
                echo ${dst_dir[@]}
            else
                echo $file"不存在,不知道怎么替换!"
                echo "请手动cp"
            fi
        done
    ;;
    3)
        files=($(find /app/tmp_class/ -type f))
        for file in "${files[@]}"
        do
            file_name=$(basename "$file")
            file_dir=`dirname $file`
            dst_dir=($(find /app/tomcat_thirdparty/webapps -type f -name "${file_name}" -exec dirname {} \;))
            if [ ${#dst_dir[@]} -eq 1 ];then
                rsync -a -b --backup-dir=/app/tmp/$(date +%m%d_%H_%M) $file ${dst_dir[0]}
            elif [ ${#dst_dir[@]} -gt 1 ];then
                echo $file"在以下目录中都存在,请手工 cp -a"
                echo ${dst_dir[@]}
            else
                echo $file"不存在,不知道怎么替换!"
                echo "请手动cp"
            fi
        done
    ;;
    *)
        echo "error number"
esac
posted on 2016-05-22 16:50  bvac  阅读(393)  评论(0编辑  收藏  举报