第一次自己写的完善的备份脚本,很高兴


       使用的tar,和if 备份,比较灵活,可以让用户自己输入需要备份的文件或者目录和输入备份的目标地址,能够检查备份的文件或文件夹是否存在,并做出相应的操作,如果目标地址不存在,则显示备份失败,提示输入正确的目标地址。

---------------------------------------------------------------------------------------------------------

#!/bin/bash
read -p "请输入你需要备份的文件,如/etc/,/etc/passwd:" SPATH
read -p "请输入备份文件的目的目录:" DPATH
if [ ! -d "$DPATH" ];then
echo -e "\033[31m $DPATH 不存在,请输入正确的目标目录\033[0m"
echo -e "备份\033[31m 失败\033[0m"
exit
fi

if [ -d "$SPATH" ];then

cd $SPATH  > /dev/null
tar cvf - . | tar xvf - -C $DPATH > /dev/null
if [ $? = 0 ];then
echo -e "备份\033[32m 成功\033[0m."
echo "*****************************************"
echo -e  "这是个\033[32m 目录\033[0m,备份如下:"
echo "ls -ltr $DPATH"
ls  -ltr  $DPATH
else
echo -e "备份\033[31m 失败\033[0m."
fi
fi
if [ -f "$SPATH" ] ;then
filedir=`dirname $SPATH`
filebase=`basename $SPATH`
cd $filedir
tar cvf - $filebase | tar xvf - -C $DPATH > /dev/null
if [ $? = 0 ];then
echo -e "备份 \033[32m 成功 \033[0m."
echo "*****************************************"
echo -e  "这是一个\033[32m 文件\033[0m,备份如下:"
echo "ll -ltr $DPATH"
ls  -ltr  $DPATH
else
echo -e "备份\033[31m 失败\033[0m."
fi
fi
if [ ! -d "$SPATH" ]  && [ ! -f "$SPATH" ] ;then
echo -e "\033[31m 不好意思,系统不能备份,因为您输入的路径不存在\033[0m."
exit
fi
----------------------------------------------------------------------------------------------------------