Làm cách nào để xuất vùng lưu trữ trong AWS Route 53?


18

Tôi thấy không có tùy chọn để xuất bản sao lưu các cài đặt cho một tên miền.

Có lẽ tôi nên lưu kết quả của DNS công cộng bằng đào nhưng tôi sẽ hỏi liệu một người bạn có biết cách nào tốt hơn không.

Câu trả lời:


27

Vâng, nó có thể là cách thân thiện hơn. Tôi đề nghị sử dụng công cụ cli53, https://github.com/barnyorms/cli53

Sau khi bạn thiết lập nó, chỉ cần thử

xuất khẩu cli53 - đầy đủ sciworth.com

Và bạn có được khu vực xuất khẩu ở định dạng liên kết.


6

Không cần cài đặt phần mềm bổ sung. Bạn chỉ cần awscli.

Đây là những gì tôi vừa viết. Nó là đơn giản và làm việc như quyến 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

Nếu bạn muốn xuất sang định dạng liên kết, bạn có thể sử dụng tập lệnh này:

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

Để xuất vùng được lưu trữ trong AWS Tuyến 53, hãy làm theo các bước sau (giả sử bạn đang sử dụng vùng được lưu trữ example.com):

Bước 1: Cài đặt - pip install route53-transfer

Bước 2: Sao lưu vùng vào tệp CSV:

route53-transfer dump example.com backup.csv

Sử dụng STDOUT thay vì một tệp

route53-transfer dump example.com –

Bước 3: Khôi phục một vùng:

route53-transfer load example.com backup.csv

Sử dụng -để tải từ STDIN thay thế

Di chuyển giữa các tài khoản:

Sử dụng các công tắc dòng lệnh để ghi đè các khóa truy cập và khóa bí mật:

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

Nếu bạn đang làm việc với các vùng riêng tư, hãy sử dụng –privateđể phân biệt các miền riêng tư:

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

-1

Bạn có thể đăng ký Cloudflare.com và thêm một trang web miễn phí.

Cloudflare sẽ quét DNS của bạn như là một phần của việc đưa lên.

Sau khi nhập (hoặc có thể trong thời gian), trong "Nâng cao" bên dưới bản ghi DNS, có nút xuất tệp DNS.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.