shell根据日期实现完全备和增量备份文件

#!/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



显示效果

周一到周六 增量备份

wKiom1ZHZEfAM7b4AAAzjfByD1c016.png

周七 全量备份


wKiom1ZHZF2i8icSAAA3C5osCKM810.png

wKioL1ZHZKqBr1aLAABEurn182c107.png


要把脚本优化到最佳效果,可以加上邮件通知等功能;

你可能感兴趣的:(linux,backup,System)