linux shell 增量备份

#! /bin/bash
#Automatic Backup Linux System Files
#By Author xiangbing
#Define Variables

SOURCE_DIR=(
  $*
)

TARGET_DIR=/data/backup
YEAR=`date +%Y`
MONTH=`date +%m`
DAY=`date +%d`
WEEK=`date +%u`
FILES=system_backup.tgz
CODE=$?

if [ -z $SOURCE_DIR ]
then
  echo -e "Please Enter a file or Directory You Need to Back:\n-----------------------------------------\nExample $0 /boot/etc......"
  exit
fi

#Determine Whether the Target Directory Exists

if [ ! -d $TARGET_DIR/$YEAR/$MONTH/$DAY ]
then
  mkdir -p $TARGET_DIR/$YEAR/$MONTH/$DAY
  echo "this $TARGET_DIR Created Successfully"
fi

#EXEC full_backup Function Command

full_backup()
{
  if [ "$WEEK" -eq "7" ]
  then
    rm -rf $TARGET_DIR/snapshot
    cd $TARGET_DIR/$YEAR/$MONTH/$DAY
    tar -g $TARGET_DIR/snapshot -czvf $FILES `echo ${SOURCE_DIR[@]}`
    [ "$CODE" == "0" ] && echo -e "----------------------------------------------------------------\nfull_backup System Files Backup Successfully!"
  fi

}

#Perform incremental BACKUP Function Command
add_backup()
{
  cd $TARGET_DIR/$YEAR/$MONTH/$DAY
  if [ -f $TARGET_DIR/$YEAR/$MONTH/$DAY/$FILES ]
  then
    read -p "$FILES Already Exists,overwrite confirmation yes or no?:"SURE
    if [ $SURE == "no" -o $SURE == "n" ]
    then
    sleep 1; exit 0
    fi


    #add_backup Files System
    if [ $WEEK -ne "7" ]
    then
      cd $TARGET_DIR/$YEAR/$MONTH/$DAY
      tar -g $TARGET_DIR/snapshot -czvf $$_$FILES `echo ${SOURCE_DIR[@]}`
      [ "$CODE" == "0" ] && echo -e "------------------------------------------------------------------\nadd_backup System Files Backup Successfully!"
    fi
  else

    #add_backup Files System
    if [ $WEEK -ne "7" ]

    then
      cd $TARGET_DIR/$YEAR/$MONTH/$DAY
      tar -g $TARGET_DIR/snapshot -czvf $$_$FILES `echo ${SOURCE_DIR[@]}`
      [ "$CODE" == "0" ] && echo -e "------------------------------------------------------------------\nadd_backup System Files Backup Successfully!"
    fi
  fi

}

full_backup;add_backup

posted @ 2021-08-16 15:23  香饼  阅读(163)  评论(0编辑  收藏  举报