AWS रूट 53 में होस्ट किए गए ज़ोन को कैसे निर्यात करें?


18

मुझे डोमेन के लिए सेटिंग्स का बैकअप निर्यात करने का कोई विकल्प नहीं दिखता है।

शायद मुझे सार्वजनिक डीएनएस के परिणामों को खुदाई से बचाना चाहिए लेकिन मैं सवाल करूंगा कि क्या एक दोस्त बेहतर तरीके से जानता है।

जवाबों:


27

हां, यह अधिक अनुकूल तरीका हो सकता है। मैं cli53 टूल, https://github.com/barnybug/cli53 का उपयोग करने का सुझाव देता हूं

इसे सेटअप करने के बाद, बस प्रयास करें

cli53 निर्यात --full sciworth.com

और आपको निर्यात क्षेत्र बाइंड प्रारूप में मिलता है।


6

अतिरिक्त सॉफ़्टवेयर इंस्टॉलेशन की आवश्यकता नहीं है। आपको केवल अक्सकली की आवश्यकता है।

यहाँ वही है जो मैंने अभी लिखा है। यह सरल है और आकर्षण की तरह काम करता है।

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

यदि आप बाइंड प्रारूप में निर्यात करना चाहते हैं, तो आप इस स्क्रिप्ट का उपयोग कर सकते हैं:

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

AWS रूट 53 में होस्ट किए गए ज़ोन को निर्यात करने के लिए, इन चरणों का पालन करें (उदाहरण के लिए, आप होस्टेड ज़ोन का उपयोग कर रहे हैं)

चरण 1: स्थापना - pip install route53-transfer

चरण 2: CSV फ़ाइल के लिए ज़ोन का बैकअप लें:

route53-transfer dump example.com backup.csv

फ़ाइल के बजाय STDOUT का उपयोग करें

route53-transfer dump example.com –

चरण 3: एक ज़ोन को पुनर्स्थापित करें:

route53-transfer load example.com backup.csv

-इसके बजाय STDIN से लोड करने के लिए उपयोग करें

खातों के बीच माइग्रेट करें:

पहुँच और गुप्त कुंजियों को ओवरराइड करने के लिए कमांड लाइन स्विच का उपयोग करें:

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

यदि आप निजी क्षेत्रों के साथ काम कर रहे हैं, तो –privateनिजी डोमेन को अलग करने के लिए उपयोग करें:

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

-1

आप Cloudflare.com के लिए साइन अप कर सकते हैं और एक मुफ्त वेबसाइट जोड़ सकते हैं।

क्लाउडफ़ेयर आपके ऑनबोर्डिंग के हिस्से के रूप में आपके DNS को स्कैन करेगा।

DNS रिकॉर्ड के नीचे "उन्नत" में आयात (या शायद दौरान) के बाद, निर्यात DNS फ़ाइल बटन है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.