一個自動備份腳本

原文:https://blog.csdn.net/LSY_CSDN_/article/details/91354276

backupFilePath=/home/zhanglei/data/www/
saveBackupFilePath=/home/zhanglei/data/www/back
fileName=upload
backupsFileDay=8

上面是配置文件

 

執行主體:

 

#db_backups_conf.txt文件路徑
dir=`"pwd"`
db_backups_conf="${dir}/conf.txt"

#判斷文件是否存在
if [ -f "${db_backups_conf}" ];then

	echo $(date +'%Y-%m-%d %H:%M:%S')" 要備份的文件存在,開始進行文件備份"

	#獲取等號前內容,作爲map中的Key值
	dbArrOne=($(awk -F'[=]' '{print $1}' ${db_backups_conf} ))

	#獲取等號後內容,作爲map中的value值
	dbArrTwo=($(awk -F'[=]' '{print $2}' ${db_backups_conf}))

	#創建一個空map
	declare -A map=()

	#通過循環,將db_backups_conf配置文件中的信息存儲在map中
	for((i=0;i<${#dbArrOne[@]};i++))
	do
		map[${dbArrOne[i]}]=${dbArrTwo[i]}
	done


	#獲取當前年月日
	saveday=$(date +%Y%m%d)

	#獲取超出備份天數的年月日
	delday=$(date -d ${map["backupsFileDay"]}' days ago' +%Y%m%d)

	#備份文件
	echo $(date +'%Y-%m-%d %H:%M:%S')" 備份文件:"${map["backupFilePath"]}

	#判斷保存備份文件路徑是否存在
	if [ -f "|${map['saveBackupFilePath']}/${saveday}/${map['fileName']}_$(date +'%Y%m%d%H%M%S')" ];then
		cp -f -r ${map["backupFilePath"]} ${map["saveBackupFilePath"]}/${saveday}/${map["fileName"]}_$(date +'%Y%m%d%H%M%S')/
   	else
		mkdir -p ${map["saveBackupFilePath"]}/${saveday}/${map["fileName"]}_$(date +'%Y%m%d%H%M%S')
		cp -f -r ${map["backupFilePath"]} ${map["saveBackupFilePath"]}/${saveday}/${map["fileName"]}_$(date +'%Y%m%d%H%M%S')/
	fi

	#刪除保存文件路徑中n天前備份的數據文件
	echo $(date +'%Y-%m-%d %H:%M:%S')" 刪除備份文件:"${map["saveBackupFilePath"]}/${delday}
	rm -f -r ${map["saveBackupFilePath"]}/${delday}

	echo $(date +'%Y-%m-%d %H:%M:%S')" 文件備份完畢,腳本執行完畢"

else
	echo "配置文件不存在"
fi

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章