前段时间用 ACME 申请证书的时候,不知道为什么,莫名其妙没有自动删除 TXT 记录,导致我的域名里面有几百条 TXT 记录。
这里就推荐一个方法,可以批量删除 Cloudflare 的 DNS 记录。
推荐阅读
优劣势
-
可以批量删除 DNS 记录
-
只能一口气删掉所有 DNS 记录
-
官方的一键导入导出无法记录 CDN 是否开启,需要后续手动开启。
脚本代码
本脚本来源于 Cloudflare 社区
$API_TOKEN = "<API TOKEN>" $ZONE_ID = "<ZONE ID>" $baseUrl = "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records" $headers = @{ 'Authorization' = "Bearer $API_TOKEN" 'Content-Type' = "application/json" } $listUrl = $baseUrl + '?per_page=500' Write-Host $listUrl $records = Invoke-RestMethod -Uri $listUrl -Method 'GET' -Headers $headers $records = $records | Select-Object -ExpandProperty result foreach ($record in $records) { Write-Host "Deleting $($record.name) that points to $($record.content)" $deleteUrl = $baseUrl + '/' + $record.id Invoke-RestMethod -Uri $deleteUrl -Method 'DELETE' -Headers $headers Write-Host $deleteUrl }
Zone ID 在此处获取:
Api Token 需要自行创建:
使用默认模板即可,不放心的话可以指定该 Token 的权限
记得提前去导出 DNS 记录,编辑导出的 TXT 文件,删除你不想要的记录即可。