diff --git a/scripts/backup-online.sh b/scripts/backup-online.sh index e295514..710ff15 100755 --- a/scripts/backup-online.sh +++ b/scripts/backup-online.sh @@ -142,6 +142,10 @@ EOF printf '%s %s\n' "${payload_sha}" 'mysql-full.tgz.enc' > "${tmp_dir}/mysql-full.tgz.enc.sha256" backup_write_complete_marker "${tmp_dir}/complete.env" 'mysql-full.tgz.enc' "${payload_sha}" "${payload_size}" "${server_uuid}" + # complete.env 会作为远端最后上传的原子完成标识。仅当日备已上传成功后, + # 才将该备份移入本地正式保留目录,避免失败备份被 status 误判为完整。 + upload_backup_set "${tmp_dir}" daily "${ts}" "${server_uuid}" "${oss_uri}" + mkdir -p "${target_dir}" mv "${tmp_dir}/mysql-full.tgz.enc" "${target_dir}/" mv "${tmp_dir}/mysql-full.tgz.enc.sha256" "${target_dir}/" @@ -151,7 +155,6 @@ EOF cleanup_dir='' rmdir "${tmp_dir}" - upload_backup_set "${target_dir}" daily "${ts}" "${server_uuid}" "${oss_uri}" if [[ "$(date +%u)" == '7' ]]; then mkdir -p "${backup_dir}/full/weekly/${ts}" ln "${target_dir}/mysql-full.tgz.enc" "${backup_dir}/full/weekly/${ts}/mysql-full.tgz.enc"