fix: 兼容最小权限数据库备份校验
This commit is contained in:
@@ -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" \) \
|
||||
|
||||
Reference in New Issue
Block a user