使用函数封装-自动化处理文件备份管理脚本
#!/bin/bash

srcPath=""
dstPath=""

ErrMsg="Yout enter the directory or file dose not exist. "
DstDirMsg="Please input destination dircetory"
SrcFilesMsg="Please input source dircetory or file."
DstFilesMsg="Delete the file or dircetory. "
DirFileMsg=""

function inputSourcePath(){
while true
do

        echo $DirFileMsg
        read srcPath
        if [  -d $srcPath -o -f $srcPath  ]; then

                if [ -e $srcPath ]; then
                        break
                fi

        fi
        echo "$ErrMsg"

done
}

function inputDstPath(){
while true
do
        echo $DstDirMsg
        read dstPath
        if [  -d $dstPath -a -e $dstPath ]; then

                break
        fi
        echo "$ErrMsg"
done
}

function copy(){
while true
do
        inputSourcePath
        inputDstPath


        if [  $srcPath != $dstPath  -a  -d $srcPath  ]; then
                break

        elif [ -f $srcPath -a  `dirname $srcPath` != $dstPath ]; then
                break

        fi

        echo "The source and destination cannot be the same! Please input again"

done

cp -a  $srcPath $dstPath
echo "The files have been susscessfully copied."

}

function delete(){

        inputSourcePath

        echo "Proceed with removal? y"
        read yn
        if [ $yn == "y" ]; then
                rm -rf $srcPath
                echo "sussessfully delete!"
        fi

}


function backup(){

        inputSourcePath
        inputDstPath

        backName=`date -d today +%Y%m%d%H%M%S`
        cd $dstPath
        tar -czvf  "$backName.tar.gz" $srcPath
        echo "A successful backup to $dstPath/$backName.tar.gz"
}


while true
do

echo "*******************************************"
echo " 1 Copy"
echo " 2 Delete"
echo " 3 Backup"
echo " 4 Quit "
echo "*******************************************"


read op

case $op in
        1)
        echo "You selection is Copy"
        DirFileMsg=$SrcFilesMsg
        copy
        read -p "Press any key to continue..."
        clear
        ;;
        2)
        echo "You selection is delete"
        DirFileMsg=$DstFilesMsg
        delete
        read -p "Press any key to continue..."
        clear
        ;;
        3)
        echo "You selection is Back"
        DirFileMsg=$SrcFilesMsg
        backup
        read -p "Press any key to continue..."
        clear
        ;;
        4)
        echo "Exit..."
        break
        ;;
        *)
        echo "Error! invalide selection, try again"
        ;;
esac
done


本文 暂无 评论

回复给

Top