diff --git a/backUpDB.sh b/backUpDB.sh index 309e63c..c49be41 100755 --- a/backUpDB.sh +++ b/backUpDB.sh @@ -8,8 +8,6 @@ dbName=$5 backUpPath=$6 ossPath=$7 -protol=oss - PATH=PATH:/usr/bin:/usr/sbin:/usr/local/bin cd $backUpPath @@ -26,4 +24,4 @@ mv ${dbName}.sql sql tar -czvf ${dbName}.sql.tar.gz sql echo "ossPath: "${ossPath} -ossutil cp ${dbName}.sql.tar.gz ${protol}://${ossPath}/ -f +ossutil cp ${dbName}.sql.tar.gz oss://${ossPath}/ -f diff --git a/backup.sh b/backup.sh index 2acd7f4..f75000a 100755 --- a/backup.sh +++ b/backup.sh @@ -1,8 +1,7 @@ #!/bin/bash # 获取当前日期和时间 -current_date=$(date +%Y-%m-%d) -current_time=$(date +%H:%M:%S) +current_time=$(date +"%Y-%m-%d-%H") userName=$1 password=$2 dbName=$3 @@ -10,7 +9,8 @@ host=$4 backUpPath=$5 # 备份文件名 -backup_file="${dbName}_backup_${current_date}.sql" +backup_file="${dbName}_backUp_${current_time}.sql" + echo "backup_file: "${backup_file} mkdir ${backUpPath} -p || true # 备份MySQL数据库 @@ -20,12 +20,29 @@ rm sql -rf || true mkdir sql || true mv ${backup_file} sql/ tar -czvf ${backup_file}".tar.gz" "sql/" +ossutil ${backup_file}".tar.gz" oss://${ossPath}/${backup_file}".tar.gz" rm -fr sql -# + + +# 存储60个小时前的备份文件名的数组 +old_backup_files=() + +cd ${backUpPath} +# 遍历60个小时前的备份文件,并将文件名存入数组 +while IFS= read -r -d '' file; do + old_backup_files+=("$file") +done < <(find ${backUpPath} -name "${dbName}_backUp_*.tar.gz" -type f -mmin +3600 -print0) + +# 遍历数组,删除备份文件 +for file in "${old_backup_files[@]}"; do + rm "$file" || true + ossutil rm $file oss://${ossPath}/$file -f || true +done + #删除10天前的备份 -delete_date=$(date -d "10 days ago" +%Y-%m-%d) -delete_file="${dbName}_backup_${delete_date}.sql.tar.gz" -rm ${backUpPath}/"$delete_file" +#delete_date=$(date -d "10 days ago" +%Y-%m-%d) +#delete_file="${dbName}_backup_${delete_date}.sql.tar.gz" +#rm ${backUpPath}/"$delete_file" # 输出日志 echo "[$current_date $current_time] 执行${dbName}数据库备份并删除10天前备份成功"