基于Centos 7.x
在企业中,经常会做备份之类的工作,备份的数据常包含/boot、/etc、/root、/data等目录。备份的策略为:每周一至周六执行增量备份,每周日执行全量备份。
在 / 目录下创建sh目录,mkdir /sh
在sh目录下创建auto_backup.sh备份脚本文件,touch auto_backup.sh
将备份脚本内容写入auto_backup.sh中,vim auto_backup.sh
#!/bin/bash
#Automatic Backup Linux System Files
#By 小跑跑zyy
#Defin 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 Ful_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 -zcvf $FILES 'echo ${SOURCE_DIR[@]}'
[ "$CODE" == "0" ]&&echo -e "----------------------------------------------\nFull_Back 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 -zcvf $$_$FILES 'echo ${SOURCE_DIR[@]}'
[ "$CODE" == "0" ]&&echo -e "------------------------------------\nAdd_Backup System Files Back Successfully !"
fi
else
if
[ $WEEK -ne "7" ];then
cd $TARGET_DIR/$YEAR/$MONTH/$DAY ; tar -g $TARGET_DIR/snapshot -zcvf $FILES 'echo ${SOURCE_DIR[@]} '
[ "$CODE" == "0" ]&&echo -e "------------------------------------\nAdd_Backup System Files Backup Successfully !"
fi
fi
}
Full_Backup;Add_Backup
将auto_backup.sh文件增加执行权限,chmod +x auto_backup.sh