วิธีการส่งออกโซนที่โฮสต์ใน AWS Route 53


18

ฉันไม่เห็นตัวเลือกในการส่งออกข้อมูลสำรองของการตั้งค่าสำหรับโดเมน

บางทีฉันควรบันทึกผลลัพธ์ของ DNS สาธารณะด้วยการขุด แต่ฉันจะถามว่าเพื่อนรู้วิธีที่ดีกว่านี้หรือไม่

คำตอบ:


27

ใช่มันเป็นวิธีที่เป็นมิตรมากขึ้น ฉันแนะนำให้ใช้เครื่องมือ cli53, https://github.com/barnybug/cli53

หลังจากคุณติดตั้งแล้วลองทำดู

ส่งออก cli53 - เต็ม sciworth.com

และคุณจะได้รับโซนการส่งออกในรูปแบบผูก


6

ไม่จำเป็นต้องติดตั้งซอฟต์แวร์เพิ่มเติม คุณต้องการเพียง awscli

นี่คือสิ่งที่ฉันเพิ่งเขียน มันง่ายและทำงานเหมือนมีเสน่ห์

#!/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 Route 53 ให้ทำตามขั้นตอนเหล่านี้ (สมมติว่าคุณกำลังใช้พื้นที่โฮสต์ของ example.com):

ขั้นตอนที่ 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 และเพิ่มเว็บไซต์ฟรี

Cloudflare จะสแกน DNS ของคุณเป็นส่วนหนึ่งของการเริ่มต้น

หลังจากนำเข้า (หรืออาจอยู่ในระหว่าง) ใน "ขั้นสูง" ด้านล่างระเบียน DNS จะมีปุ่มส่งออกไฟล์ DNS

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.