From 367127504f455a24979b056d333d7adc1bd2d1c6 Mon Sep 17 00:00:00 2001 From: Nelson <1475262689@qq.com> Date: Fri, 10 Jul 2026 12:17:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=BC=E5=AE=B9=E6=9C=80=E5=B0=8F?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=95=B0=E6=8D=AE=E5=BA=93=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ai_knowledge_base_v2/scripts/mysql_backup.sh | 12 ++++++++++-- ai_knowledge_base_v2/scripts/mysql_restore.sh | 11 +++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/ai_knowledge_base_v2/scripts/mysql_backup.sh b/ai_knowledge_base_v2/scripts/mysql_backup.sh index 2aa5ab1..f82cadd 100755 --- a/ai_knowledge_base_v2/scripts/mysql_backup.sh +++ b/ai_knowledge_base_v2/scripts/mysql_backup.sh @@ -11,7 +11,14 @@ BACKUP_RETENTION_DAYS="${BACKUP_RETENTION_DAYS:-14}" command -v mysqldump >/dev/null || { echo "未找到 mysqldump" >&2; exit 1; } command -v gzip >/dev/null || { echo "未找到 gzip" >&2; exit 1; } -command -v shasum >/dev/null || { echo "未找到 shasum" >&2; exit 1; } +if command -v sha256sum >/dev/null; then + checksum_command=(sha256sum) +elif command -v shasum >/dev/null; then + checksum_command=(shasum -a 256) +else + echo "未找到 sha256sum 或 shasum" >&2 + exit 1 +fi mkdir -p "$BACKUP_DIR" timestamp="$(date +%Y%m%d_%H%M%S)" @@ -25,6 +32,7 @@ MYSQL_PWD="$MYSQL_PASSWORD" mysqldump \ --user="$MYSQL_USER" \ --single-transaction \ --quick \ + --no-tablespaces \ --routines \ --triggers \ --events \ @@ -35,7 +43,7 @@ MYSQL_PWD="$MYSQL_PASSWORD" mysqldump \ gzip -t "$temporary_file" test -s "$temporary_file" mv "$temporary_file" "$output_file" -(cd "$(dirname "$output_file")" && shasum -a 256 "$(basename "$output_file")" > "$(basename "$output_file").sha256") +(cd "$(dirname "$output_file")" && "${checksum_command[@]}" "$(basename "$output_file")" > "$(basename "$output_file").sha256") if [[ "$BACKUP_RETENTION_DAYS" =~ ^[0-9]+$ ]] && (( BACKUP_RETENTION_DAYS > 0 )); then find "$BACKUP_DIR" -type f \( -name "${MYSQL_DATABASE}_*.sql.gz" -o -name "${MYSQL_DATABASE}_*.sql.gz.sha256" \) \ diff --git a/ai_knowledge_base_v2/scripts/mysql_restore.sh b/ai_knowledge_base_v2/scripts/mysql_restore.sh index 7e97c83..05751c5 100755 --- a/ai_knowledge_base_v2/scripts/mysql_restore.sh +++ b/ai_knowledge_base_v2/scripts/mysql_restore.sh @@ -15,11 +15,18 @@ fi command -v mysql >/dev/null || { echo "未找到 mysql 客户端" >&2; exit 1; } command -v gzip >/dev/null || { echo "未找到 gzip" >&2; exit 1; } -command -v shasum >/dev/null || { echo "未找到 shasum" >&2; exit 1; } +if command -v sha256sum >/dev/null; then + checksum_command=(sha256sum -c) +elif command -v shasum >/dev/null; then + checksum_command=(shasum -a 256 -c) +else + echo "未找到 sha256sum 或 shasum" >&2 + exit 1 +fi test -f "$BACKUP_FILE" || { echo "备份文件不存在:$BACKUP_FILE" >&2; exit 1; } test -f "${BACKUP_FILE}.sha256" || { echo "缺少校验文件:${BACKUP_FILE}.sha256" >&2; exit 1; } -(cd "$(dirname "$BACKUP_FILE")" && shasum -a 256 -c "$(basename "$BACKUP_FILE").sha256") +(cd "$(dirname "$BACKUP_FILE")" && "${checksum_command[@]}" "$(basename "$BACKUP_FILE").sha256") gzip -t "$BACKUP_FILE" MYSQL_PWD="$MYSQL_PASSWORD" gzip -dc "$BACKUP_FILE" | MYSQL_PWD="$MYSQL_PASSWORD" mysql \