Merhaba,
Konu ile ilgili olarak paylaşım olması açısından terminal üzerinden işlemlerin gerçekleştirilebileceği şekilde iki adet ufak betik hazırladım.
İlkinde yalnızca tek bir zone (alan) ve record (kayıt) üzerinden işlem sağlanırken, diğerinde ise dosya aracılığı ile listeye göre aksiyon almaktadır.
CF UPDATER: user=$1
apikey=$2
domain=$3
record=$4
type=$5
content=$6
ttl=$7
proxied=$8
if [ ! -z $user ] && [ ! -z $apikey ] && [ ! -z $domain ] && [ ! -z $record ] && [ ! -z $type ] && [ ! -z $content ] && [ ! -z $ttl ] && [ ! -z $proxied ]
then
cfzoneid=`curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=$domain" -H "X-Auth-Email: $user" -H "X-Auth-Key: $apikey" -H "Content-Type: application/json" | jq '.result[0].id' | cut -f 2 -d '"'`
cfrecordid=`curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$cfzoneid/dns_records?type=$type&name=$record" -H "X-Auth-Email: $user" -H "X-Auth-Key: $apikey" -H "Content-Type: application/json" | jq '.result[0].id' | cut -f 2 -d '"'`
curl -s -X PATCH "https://api.cloudflare.com/client/v4/zones/$cfzoneid/dns_records/$cfrecordid" -H "X-Auth-Email: $user" -H "X-Auth-Key: $apikey" -H "Content-Type: application/json" --data '{"type":"'$type'","name":"'$record'","content":"'$content'","ttl":"'$ttl'","proxied":'$proxied'}'
else echo "Usage: ./cfupdater user apikey domain record type content ttl proxied"
fiCF BULK UPDATER: user=$1
apikey=$2
list=$3
if [ ! -z $user ] && [ ! -z $apikey ] && [ ! -z $list ]
then
for i in `cat $list`
do
domain=`echo $i | cut -f 1 -d ":"`
type=`echo $i | cut -f 2 -d ":"`
record=`echo $i | cut -f 3 -d ":"`
content=`echo $i | cut -f 4 -d ":"`
ttl=`echo $i | cut -f 5 -d ":"`
proxied=`echo $i | cut -f 6 -d ":"`
cfzoneid=`curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=$domain" -H "X-Auth-Email: $user" -H "X-Auth-Key: $apikey" -H "Content-Type: application/json" | jq '.result[0].id' | cut -f 2 -d '"'`
cfrecordid=`curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$cfzoneid/dns_records?type=$type&name=$record" -H "X-Auth-Email: $user" -H "X-Auth-Key: $apikey" -H "Content-Type: application/json" | jq '.result[0].id' | cut -f 2 -d '"'`
curl -s -X PATCH "https://api.cloudflare.com/client/v4/zones/$cfzoneid/dns_records/$cfrecordid" -H "X-Auth-Email: $user" -H "X-Auth-Key: $apikey" -H "Content-Type: application/json" --data '{"type":"'$type'","name":"'$record'","content":"'$content'","ttl":"'$ttl'","proxied":'$proxied'}'
done
else echo "Usage: ./cfbulkupdater user apikey list"
fiCF BULK UPDATER EXAMPLE LIST: dnseek.com:A:dnseek.com:2.2.2.2:60:false
dnseek.com:A:test.dnseek.com:2.2.2.3:60:true
isitliquid.com:A:test2.isitliquid.com:5.5.5.5:3600:false
Teşekkürler.