#!/bin/bash #Variable Declaration - Change These ACCESS_TOKEN="f16b8a3fe210f45008b8fec192432ca85b2765c2dac7e5bcd214de242272449b" PINGID=0311e1b0-30eb-4503-88e2-b9e99a0b872a DOMAINID="1851003" RECORDID="21559818" NAME="tester" TYPE="A" TTL=300 #get current IP address IP=$(curl http://checkip.amazonaws.com/) #validate IP address (makes sure Route 53 doesn't get updated with a malformed payload) if [[ ! $IP =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then exit 1 fi curl -H "Authorization: Bearer $ACCESS_TOKEN" https://api.linode.com/v4/domains/$DOMAINID/records/$RECORDID | \ jq -r 'select (.name="'"tester"'")|(.type="'"A"'")|.target' > /tmp/linode_${NAME}_value cat /tmp/linode_${NAME}_value #check if IP is different from Route 53 if grep -Fxq "$IP" /tmp/linode_${NAME}_value; then echo "IP Has Not Changed, Exiting" # curl -m 10 --retry 5 https://hc-ping.com/0311e1b0-30eb-4503-88e2-b9e99a0b872a exit 1 fi # | jq -r 'select (.name="'"tester"'")|(.type="'"A"'")|.target' # https://api.linode.com/?api_key=f16b8a3fe210f45008b8fec192432ca85b2765c2dac7e5bcd214de242272449b&api_action=domain.list # https://api.linode.com/v4/domains/1851003/records/21559818 # echo -X PUT -d '{"type": "\'${TYPE}\'","name": "\'${NAME}\'","target": "\'${IP}\'","priority": 50,"weight": 50,"port": 80,"service": null,"protocol": null,"ttl_sec": $TTL,"tag": null}' curl -H "Content-Type: application/json" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -X PUT -d '{ "type": "'$TYPE'", "name": "'$NAME'", "target": "'$IP'", "priority": 50, "weight": 50, "port": 80, "service": null, "protocol": null, "ttl_sec": 300, "tag": null }' \ https://api.linode.com/v4/domains/$DOMAINID/records/$RECORDID if [ $? -eq 0]; then echo "Success" else: echo "Fail" fi