原文: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