52 lines
1.3 KiB
Bash
Executable File
52 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#Variable Declaration - Change These
|
|
ACCESS_TOKEN="f16b8a3fe210f45008b8fec192432ca85b2765c2dac7e5bcd214de242272449b"
|
|
PINGID="0311e1b0-30eb-4503-88e2-b9e99a0b872a"
|
|
DOMAINID="1851003"
|
|
RECORDID="21559701"
|
|
NAME="push"
|
|
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
|