#!/bin/bash # Set variables HOSTED_ZONE_ID="Z04320311ASMBEOMPIIN6" # Replace with your Hosted Zone ID RECORD_NAME="verblaze.tlvtech.io" # Replace with your DNS record name TTL=300 # Time to live for DNS record TYPE="A" # Record type (A, CNAME, etc.) # Command to get the desired output (example: getting your public IP address) OUTPUT=$(curl -s http://checkip.amazonaws.com/) # Validate the output if [[ -z "$OUTPUT" ]]; then echo "Error: No output from command" exit 1 fi # Create JSON payload for updating the DNS record cat << EOF > /tmp/route53-record-update.json { "Comment": "Auto update DNS record via script", "Changes": [ { "Action": "UPSERT", "ResourceRecordSet": { "Name": "$RECORD_NAME", "Type": "$TYPE", "TTL": $TTL, "ResourceRecords": [ { "Value": "$OUTPUT" } ] } } ] } EOF # Update the Route 53 record aws route53 change-resource-record-sets --hosted-zone-id $HOSTED_ZONE_ID --change-batch file:///tmp/route53-record-update.json # Check if the update was successful if [[ $? -eq 0 ]]; then echo "DNS record updated successfully with value: $OUTPUT" else echo "Failed to update DNS record" exit 1 fi # Clean up the temporary file rm /tmp/route53-record-update.json