
Ich sehe keine Option zum Exportieren einer Sicherungskopie der Einstellungen für eine Domäne.
Vielleicht sollte ich die Ergebnisse des öffentlichen DNS mit Dig speichern, aber ich würde fragen, ob ein Freund einen besseren Weg kennt.
Antwort1
Ja, es kann benutzerfreundlicher sein. Ich schlage vor, das Tool cli53 zu verwenden.https://github.com/barnybug/cli53
Nachdem Sie es eingerichtet haben, versuchen Sie einfach
cli53 export --full sciworth.com
Und Sie erhalten die Exportzone im Bind-Format.
Antwort2
Keine Notwendigkeit für die Installation zusätzlicher Software. Sie benötigen nur awscli.
Hier ist, was ich gerade geschrieben habe. Es ist einfach und funktioniert wunderbar.
#!/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!"
Antwort3
Wenn Sie in das Bind-Format exportieren möchten, können Sie dieses Skript verwenden:
#!/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"'
Antwort4
Um eine gehostete Zone in AWS Route 53 zu exportieren, befolgen Sie diese Schritte (nehmen wir an, Sie verwenden die gehostete Zone von example.com):
Schritt 1: Installation –pip install route53-transfer
Schritt 2: Sichern Sie die Zone in einer CSV-Datei:
route53-transfer dump example.com backup.csv
Verwenden Sie STDOUT anstelle einer Datei
route53-transfer dump example.com –
Schritt 3: Eine Zone wiederherstellen:
route53-transfer load example.com backup.csv
Verwenden Sie es -
stattdessen zum Laden von STDIN
Zwischen Konten migrieren:
Verwenden Sie Befehlszeilenschalter zum Überschreiben der Zugriffs- und geheimen Schlüssel:
route53-transfer --access-key-id=ACCOUNT1 --secret-key=SECRET dump example.com
route53-transfer --access-key-id=ACCOUNT2 --secret-key=SECRET load example.com
Wenn Sie mit privaten Zonen arbeiten, verwenden Sie –private
zur Unterscheidung privater Domänen:
route53-transfer --private dump example.com example-private.csv
route53-transfer dump example.com example-public.csv