Я не вижу возможности экспортировать резервную копию настроек для домена.
Возможно, мне следует сохранить результаты публичного DNS с помощью dig, но я бы спросил, знает ли друг лучший способ.
Да, это может быть более дружелюбный способ. Я предлагаю использовать инструмент cli53, https://github.com/barnybug/cli53
После настройки просто попробуйте
cli53 экспорт --full sciworth.com
И вы получаете зону экспорта в формате привязки.
Не требует установки дополнительного программного обеспечения. Вам понадобится только 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!"
Если вы хотите экспортировать в формат привязки, вы можете использовать этот скрипт:
#!/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"'
Чтобы экспортировать размещенную зону в 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
Я написал быстрый простой скрипт резервного копирования
#!/usr/bin/env bash
#set your vars
date=$(date +%j%m%Y)
backup_to="/change/this/to/your/destination/backup/dir"
backup_command_path="/usr/local/bin/cli53"
backup_command="cli53 export"
#check if cli53 exist
if ! [ -f $backup_command_path ]; then
echo -e " file do not exist\n please install it from https://github.com/barnybug/cli53/releases/latest"
exit 1
fi
#get list of domains to backup
domains=$(cli53 l | awk '{print $2}'| sed 's/.$//' | sed 's/Nam//')
cd $backup_to
for i in ${domains[@]}; do
cli53 export $i > $i
done
#list backup directory
echo -e " the following zones where backup:\n"
ls -l
Вы можете зарегистрироваться на Cloudflare.com и добавить бесплатный веб-сайт.
Cloudflare просканирует ваш DNS как часть процесса адаптации.
После импорта (или, может быть, во время) в разделе «Дополнительно» под записями DNS есть кнопка Экспорт файла DNS.