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