#! /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:
-----------------------------------------
Example $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 "----------------------------------------------------------------
full_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 "------------------------------------------------------------------
add_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 "------------------------------------------------------------------
add_backup System Files Backup Successfully!"
fi
fi
}
full_backup;add_backup