Antworten:
Ja, es kann freundlicher sein. Ich schlage vor, das cli53-Tool https://github.com/barnybug/cli53 zu verwenden
Nachdem Sie es eingerichtet haben, versuchen Sie es einfach
cli53 export - voll sciworth.com
Und Sie erhalten die Exportzone im Bindungsformat.
Keine zusätzlichen Softwareinstallationen erforderlich. Du brauchst nur awscli.
Hier ist, was ich gerade geschrieben habe. Es ist einfach und wirkt wie Charme.
#!/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!"
Wenn Sie in das Bindungsformat exportieren möchten, können Sie das folgende 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"'
Führen Sie die folgenden Schritte aus, um eine gehostete Zone in AWS Route 53 zu exportieren (Beispiel: Sie verwenden die gehostete Zone example.com):
Schritt 1: Installation - pip install route53-transfer
Schritt 2: Sichern Sie die Zone in eine CSV-Datei:
route53-transfer dump example.com backup.csv
Verwenden Sie STDOUT anstelle einer Datei
route53-transfer dump example.com –
Schritt 3: Wiederherstellen einer Zone:
route53-transfer load example.com backup.csv
Verwenden -
Sie stattdessen, um von STDIN zu laden
Zwischen Konten migrieren:
Verwenden Sie Befehlszeilenoptionen, um den Zugriff und die geheimen Schlüssel zu überschreiben:
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
, um private Domänen zu unterscheiden:
route53-transfer --private dump example.com example-private.csv
route53-transfer dump example.com example-public.csv
Sie können sich bei Cloudflare.com anmelden und eine kostenlose Website hinzufügen.
Cloudflare scannt Ihren DNS als Teil seiner Integration.
Nach dem Import (oder möglicherweise während) befindet sich unter "Erweitert" unter den DNS-Einträgen eine Schaltfläche "DNS-Datei exportieren".