Cloudflare 批次刪除 DNS 記錄
BUBU 因為想要把公司 DNS 服務轉移到 Cloudflare 來服務,但是匯入資料時不小心啟用 proxy 功能,想說要重新匯入但是要先清空記錄,但 DNS 記錄有約有三百多條一個一個刪太慢了只能利用 API 方式進行刪除。
簡單說明
-
首先到
cloudflare
後台申請 API 服務 -
到您要設定的 DNS 網域名稱下面有一欄 API 項目,按下紅色框框的連結
- 進入後選擇建立
Token
- 進入後再選擇
Edit zone DNS
樣版
- 在
Zone Resources
選擇您要設定的網域名稱
- 下一步會讓您確認,沒有問題可以建立
Token
- 系統會產出一組 key 複製下來,下面是範例可以參考及測試
- 利用
bash
方式進行刪除vim cfdnsdel.sh
#!/bin/bash
# 輸入您剛剛申請的 key
TOKEN="xxxxxxxxxxxxxxxxxxx"
# 回到 DNS 頁面的 API 欄位有一個 zone ID 您再把這個複製下來到這裡
ZONE_ID=2222222222222222222222222
# [email protected]
# KEY=11111111111111111111111111
# Replace with
# -H "X-Auth-Email: ${EMAIL}" \
# -H "X-Auth-Key: ${KEY}" \
# for old API keys
curl -s -X GET https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records?per_page=500 \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" | jq .result[].id | tr -d '"' | (
while read id; do
curl -s -X DELETE https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records/${id} \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json"
done
)
- 但在執行前要先安裝套件叫 jq 的
apt install -y jq
- 讓該腳本有執行權限
chmod +x cfdnsdel.sh
- 執行後所出現的畫面
- 執行完之後再回後台查看是否已清除了。