dns-updater/linode/updateGit.sh
2022-06-23 22:48:31 +01:00

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