AWS Route 53'te barındırılan bir bölge nasıl dışa aktarılır?


18

Bir alan adı ayarlarının yedeğini dışa aktarma seçeneği görmüyorum.

Belki genel DNS sonuçlarını kazı ile kaydetmeliyim ama bir arkadaşımın daha iyi bir yol bilip bilmediğini sorgularım.

Yanıtlar:


27

Evet, daha dostane bir yol olabilir. Ben cli53 aracını kullanmanızı öneririm, https://github.com/barnybug/cli53

Kurduktan sonra, deneyin

cli53 ihracatı --full sciworth.com

Ve dışa aktarma bölgesini bağlama biçiminde alırsınız.


6

Ek yazılım kurulumlarına gerek yoktur. Sadece awscli'ye ihtiyacınız var.

İşte az önce yazdım. Çok basit ve çekicilik gibi çalışır.

#!/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!"

2

Bağlama biçimine dışa aktarmak istiyorsanız, şu komut dosyasını kullanabilirsiniz:

#!/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"'

0

Barındırılan bir bölgeyi AWS Route 53'te dışa aktarmak için şu adımları izleyin (example.com barındırılan bölgeyi kullandığınızı varsayalım):

Adım 1: Kurulum - pip install route53-transfer

Adım 2: Bölgeyi bir CSV dosyasına yedekleyin:

route53-transfer dump example.com backup.csv

Dosya yerine STDOUT kullanın

route53-transfer dump example.com –

3. Adım: Bir bölgeyi geri yükleme:

route53-transfer load example.com backup.csv

Kullanım -STDIN'den yüke yerine

Hesaplar arasında taşıma:

Erişim ve gizli anahtarları geçersiz kılmak için komut satırı anahtarlarını kullanın:

route53-transfer --access-key-id=ACCOUNT1 --secret-key=SECRET dump example.com
route53-transfer --access-key-id=ACCOUNT2 --secret-key=SECRET load example.com

Özel bölgelerle çalışıyorsanız, özel alanları –privateayırt etmek için kullanın :

route53-transfer --private dump example.com example-private.csv
route53-transfer dump example.com example-public.csv

-1

Cloudflare.com'a kaydolabilir ve ücretsiz bir web sitesi ekleyebilirsiniz.

Cloudflare, DNS'inizi katılımının bir parçası olarak tarar.

İçe aktardıktan sonra (veya sırasında), DNS kayıtlarının altındaki "Gelişmiş" bölümünde, DNS dosyasını Dışa Aktar düğmesi bulunur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.