For my personal project, I use Cloudflare to set up DNS records.
If you are also using Cloudflare and need a backup of your DNS records, you can use the following tutorial to download your data and store it in a secure location for future reference. All you need is an npm module and a command line.
Prerequisites
Set up
The first thing we’re going to do is use a tool called cloudflare-backup from npm.
To set this up run the following commands in your terminal:
$ npm install -g cloudflare-backupScript setup
Now that we have confirmed we have the prerequisites for the backup, create a file called cf-backup.sh in your chosen folder.
Inside that file add the following script:
#!/bin/bash
[email protected] CF_TOKEN=abc123 cf-backup > zones.bind.txtAccount setup
To run this with your account
- Log in to Cloudflare and click on your name (in the top right) and click My Profile
- Go to the API Tokens tab
- Click to view your Global API Key
- Copy your global API key into cf-backup.shreplacingabc123
- Replace [email protected]incf-backup.shwith your Cloudflare account email address
Run the script
Now you can run the script to retreive a copy of your records:
$ sh cf-backup.shA new file zones.bind.txt should appear in your folder with all of your DNS records.
Future improvements
I am looking to update this in the future to closer match my Route 53 DNS Backups utilising one file per zone, Cloudflare API Tokens with just “read” access, and a date stamped folder.