No veo ninguna opción para exportar una copia de seguridad de la configuración de un dominio.
Tal vez debería guardar los resultados del DNS público con excavación, pero me preguntaría si algún amigo conoce una manera mejor.
Respuesta1
Sí, puede ser una forma más amigable. Sugiero usar la herramienta cli53,https://github.com/barnybug/cli53
Después de configurarlo, solo intenta
Exportación cli53 --sciworth.com completo
Y obtienes la zona de exportación en formato de enlace.
Respuesta2
No es necesario instalar software adicional. Sólo necesitas awscli.
Esto es lo que acabo de escribir. Es simple y funciona a las mil maravillas.
#!/bin/bash -e
#
# Author: Peycho Dimitrov
#
# DESCRIPTION
#
# Create full backup of all hosted Route53 zones / domains in your account.
#
# REQUIREMENTS
#
# Available s3 bucket (where your json files will be saved)
# awscli (with cofigured credentials or IAM role)
# gzip
# awk
#
####################################
# CONFIGURATION
region="us-east-1" # Your aws region
b_route53_tmp="/tmp/r53_backup" # Your temp directory
b_route53_bucket="s3://my-backups/route53" # Your backup folder in s3.
# END OF CONFIGURATION
# Do not edit here if you don't know what your're doing! #
mkdir -p $b_route53_tmp
echo "$(date) Backup all Route53 zones and resource records."
p_aws="$(which aws) --region $region"
r53_zones=$($p_aws route53 list-hosted-zones --query '[HostedZones[*].[Id, Name]]' --output text | awk -F'/' '{print $3}')
if [ ! -z "$r53_zones" ]; then
while read route; do
zone=$(echo "$route" | awk '{print $1}')
domain=$(echo "$route" | awk '{print $2}')
echo "Processing $zone / $domain"
$p_aws route53 list-resource-record-sets --hosted-zone-id "$zone" --output json > "$b_route53_tmp"/$(date +%Y%m%d%H%M%S)-"$zone"-"$domain"backup.json
done <<<"$r53_zones"
echo "Archive json files."
gzip "$b_route53_tmp"/*backup.json
echo "Backup $zone / $domain data to $b_route53_bucket/$(date +%Y)/$(date +%m)/$(date +%d)/"
$p_aws s3 cp "$b_route53_tmp"/ $b_route53_bucket/$(date +%Y)/$(date +%m)/$(date +%d)/ --exclude "*" --include "*.gz" --recursive
fi
echo "$(date) Done!"
Respuesta3
Si desea exportar al formato de enlace, puede utilizar este script:
#!/bin/bash
zonename=$1
hostedzoneid=$(aws route53 list-hosted-zones | jq -r ".HostedZones[] | select(.Name == \"$zonename.\") | .Id" | cut -d'/' -f3)
aws route53 list-resource-record-sets --hosted-zone-id $hostedzoneid --output json | jq -jr '.ResourceRecordSets[] | "\(.Name) \t\(.TTL) \t\(.Type) \t\(.ResourceRecords[].Value)\n"'
Respuesta4
Para exportar una zona alojada en AWS Route 53, siga estos pasos (supongamos que está utilizando la zona alojada de example.com):
Paso 1: Instalación –pip install route53-transfer
Paso 2: haga una copia de seguridad de la zona en un archivo CSV:
route53-transfer dump example.com backup.csv
Utilice STDOUT en lugar de un archivo
route53-transfer dump example.com –
Paso 3: restaurar una zona:
route53-transfer load example.com backup.csv
Úselo -
para cargar desde STDIN en su lugar
Migrar entre cuentas:
Utilice modificadores de línea de comando para anular las claves secretas y de acceso:
route53-transfer --access-key-id=ACCOUNT1 --secret-key=SECRET dump example.com
route53-transfer --access-key-id=ACCOUNT2 --secret-key=SECRET load example.com
Si está trabajando con zonas privadas, utilice –private
para distinguir dominios privados:
route53-transfer --private dump example.com example-private.csv
route53-transfer dump example.com example-public.csv