Migrated Export_DNS from https://git.ncltech.co.uk/phil/Export_DNS
This commit is contained in:
+38
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
# Load config
|
||||
source config.conf
|
||||
|
||||
EXPORT_FOLDER="export"
|
||||
mkdir -p "$EXPORT_FOLDER"
|
||||
|
||||
# Step 1: Fetch all zones from Cloudflare
|
||||
echo "Fetching zone list from Cloudflare..."
|
||||
zones_json=$(curl -s https://api.cloudflare.com/client/v4/zones \
|
||||
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
|
||||
-H "Content-Type: application/json")
|
||||
|
||||
# Step 2: Parse zones (needs jq)
|
||||
zone_count=$(echo "$zones_json" | jq '.result | length')
|
||||
echo "Found $zone_count zones."
|
||||
|
||||
# Step 3: Loop through zones
|
||||
for ((i=0; i<zone_count; i++)); do
|
||||
ZONE_ID=$(echo "$zones_json" | jq -r ".result[$i].id")
|
||||
SITE_NAME=$(echo "$zones_json" | jq -r ".result[$i].name")
|
||||
|
||||
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
|
||||
OUTPUT_FILE="$EXPORT_FOLDER/${SITE_NAME}_$TIMESTAMP.txt"
|
||||
|
||||
echo "Exporting DNS records for $SITE_NAME..."
|
||||
|
||||
curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/export" \
|
||||
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
|
||||
-H "Content-Type: application/json" | tee "$OUTPUT_FILE"
|
||||
|
||||
echo " -> Saved to $OUTPUT_FILE"
|
||||
done
|
||||
|
||||
echo "✅ All exports complete. Files are in the '$EXPORT_FOLDER' folder."
|
||||
|
||||
Reference in New Issue
Block a user