我们一般采用如下方法进行备份:
每周日进行完整备份,其余每天为增量备份
用tar命令:
全备份:
tar -g /tmp/snapshot -czvf /tmp/2014_full_system_data.tar.gz /data/sh/
增量备份:
tar -g /tmp/snapshot -czvf /tmp/2014_add01_system_data.tar.gz /data/sh/
#!/bin/bash
#auto backup Linux system files
#define variable
SOURCE_DIR=($*)
TARGET_DIR=/data/backup/
YEAR=`date+%Y`
MONTH=`date+%m`
DAY=`date+%d`
WEEK=`date+%u`
A_NAME=`date+%H%M`
FILES=system_backup.tgz
CODE=$?
if[ -z "$*" ];then
echo -e "\033[32mUsage:\nPlease Enter Your Backup Files or Directions\n-------------\n\nUsage:{$0 /boot /etc}\033[0m"
exit
fi
#determine whether the target diretory exists
if[ ! -d $TARGET_DIR/$YEAR/$MONEY/$DAY];then
mkdir -p $TARGET_DIR/$YEAR/$MONTH/$DAY
echo -e "\033[32mThe $TARGET_DIR Created Successfully!033[0m"
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 ${SOURCE_DIR[@]}
["$CODE"=="0"]&&echo -e "-----------\n\033[32mThese Full_Backup System File Backup Successfully!\033[0m"
fi
}
#perform incremental backup function command
Add_Bachup()
{
if[ $WEEK -ne "7" ];then
cd $TARGET_DIR/$YEAR/$MONTH/$DAY
tar -g $TARGET_DIR/snapshot -czvf $A_NAME$FILES ${SOURCE_DIR[@]}
["$CODE"=="0"]&&echo -e "-----------\n\033[32mThese Add_Backup System File Backup Successfully!\033[0m"
fi
}
sleep
Full_Backup
Add_Backup