#!/bin/bash
#Auto Backup linux system Files
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 Directories\n-----------------------------\n\nUsage: { $0 /boot /etc}\033[0m"
exit
fi
#Determine whether the Target Directory exists
if
[ ! -d $TARGET_DIR/$YEAR/$MONTH/$DAY ];then
mkdir -p $TARGET_DIR/$YEAR/$MONTH/$DAY
echo -e "\033[32mThe $TARGET_DIR Created Successfully !\033[0m"
fi
#EXEC Full_Backuo Function Command
Full_Backup()
{
if
[ "$WEEK" -eq "7" ];then //判断日期为周日
rm -rf $TARGET_DIR/zzxtbl
cd $TARGET_DIR/$YEAR/$MONTH/$DAY;tar -g $TARGET_DIR/zzxtbl -czvf $FILES ${SOURCE_DIR[@]}
[ "$CODE" == "0" ]&&echo -e "--------------------------\n\033[32mthess Full_Backup System Files Backuo Successfully !\033[0m"
fi
}
#PERform incremental BACKUP function Commad
Add_Backup()
{
if
[ $WEEK -ne "7" ];then
cd $TARGET_DIR/$YEAR/$MONTH/$DAY;tar -g $TARGET_DIR/zzxtbl -czvf $A_NAME$FILES ${SOURCE_DIR[@]}
[ "$CODE" == "0" ]&&echo -e "--------------------------\n\033[32mthes Add_Backup systemFile $TARGET_DIR/$YEAR/$MONTH/$DAY/${YEAR}_$A_NAME$FILES Backup Successfully !\033[0m"
fi
}
sleep 3
Full_Backup;Add_Backup
显示效果
周一到周六 增量备份
周七 全量备份
要把脚本优化到最佳效果,可以加上邮件通知等功能;