#!/bin/bash #Variable Declaration - Change These ACCESS_TOKEN="f16b8a3fe210f45008b8fec192432ca85b2765c2dac7e5bcd214de242272449b" PINGID="a89477fc-2660-4bfc-baf4-ef330bcf1df5" DOMAINID="1851003" RECORDID="21559687" NAME="git" 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/${PINGID} exit 1 fi 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 good curl -m 10 --retry 5 https://hc-ping.com/${PINGID}/99