您的位置:首页 > 运维架构 > Linux

使用函数封装-公司自动化处理文件备份管理脚本

2017-04-14 13:39 543 查看
#!/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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐