服务器托管商通知服务器地址要变更,一批域名的DNS解析都托管在Cloudflare,要手工一个一个修改域名DNS的IP费时又费力。
Cloudflare提供了API接口,可以批量修改DNS的IP地址。
大致思路:
1、调用 List Zones 获取账户下所有的zones
2、循环获取某个zone的zone_id后,调用 List DNS Records 获取所有content为旧IP的A记录
3、调用 Patch DNS Record 将对应A记录的IP修改为新IP
脚本gist:cloudflare-DNS-bulk-update.sh
备注:
1、由于只修改IP地址,不需要更改其他信息,因此使用 Patch DNS Record ,而非 Update DNS Record 。Patch命令只需要传入IP信息,不需要获取并传其他A记录的信息
2、由于Cloudflare API返回结果协议格式为json,shell脚本使用了 jq
使用yum安装jq,需要先安装epel-release
yum -y install epel-release
yum -y install jq