| Line 8: |
Line 8: |
| | RESULT=$( echo url="https://www.duckdns.org/update?domains=flirt,zr0ke,r0942,m0rpheus&token=********-****-****-****-************&ip=" | curl -s -k -K - ) | | RESULT=$( echo url="https://www.duckdns.org/update?domains=flirt,zr0ke,r0942,m0rpheus&token=********-****-****-****-************&ip=" | curl -s -k -K - ) |
| | echo ${DATE} ${RESULT} >> ${LOG_FILE} | | echo ${DATE} ${RESULT} >> ${LOG_FILE} |
| − | </source> | + | </source><blockquote>improved script</blockquote><syntaxhighlight lang="bash"> |
| | + | #!/bin/bash |
| | + | |
| | + | # Your DuckDNS token |
| | + | TOKEN="your-duckdns-token" |
| | + | |
| | + | # List of your DuckDNS subdomains |
| | + | DOMAINS=("flirt" "zr0ke" "r0942") |
| | + | |
| | + | # Optional: IP address to set (leave empty to use external IP) |
| | + | IP="" |
| | + | |
| | + | # Log file |
| | + | LOGFILE="$HOME/duckdns_update.log" |
| | + | |
| | + | # Logging function |
| | + | log() { |
| | + | local message="$1" |
| | + | local timestamp |
| | + | timestamp=$(date '+%Y-%m-%d %H:%M:%S') |
| | + | echo "$timestamp - $message" >> "$LOGFILE" |
| | + | } |
| | + | |
| | + | # Loop through domains |
| | + | for DOMAIN in "${DOMAINS[@]}"; do |
| | + | URL="https://www.duckdns.org/update?domains=${DOMAIN}&token=${TOKEN}&ip=${IP}" |
| | + | RESPONSE=$(curl -s "$URL") |
| | + | |
| | + | if [ "$RESPONSE" == "OK" ]; then |
| | + | log "Updated $DOMAIN successfully" |
| | + | else |
| | + | log "Failed to update $DOMAIN: $RESPONSE" |
| | + | fi |
| | + | done |
| | + | |
| | + | </syntaxhighlight> |
| | | | |
| | *crontab -e | | *crontab -e |
| Line 20: |
Line 55: |
| | ==/etc/ddclient.conf example== | | ==/etc/ddclient.conf example== |
| | <nowiki>## ddclient configuration file | | <nowiki>## ddclient configuration file |
| − | daemon=600
| + | daemon=600 |
| − | # check every 600 seconds
| + | # check every 600 seconds |
| − | syslog=yes
| + | syslog=yes |
| − | # log update msgs to syslog
| + | # log update msgs to syslog |
| − | mail-failure=redteam@bbva.com # Mail failed updates to user
| + | mail-failure=redteam@bbva.com # Mail failed updates to user |
| − | pid=/var/run/ddclient.pid
| + | pid=/var/run/ddclient.pid |
| − | # record PID in file.
| + | # record PID in file. |
| − | ssl=yes
| + | ssl=yes |
| − | # use HTTPS
| + | # use HTTPS |
| − | ## Detect IP with our CheckIP server
| + | ## Detect IP with our CheckIP server |
| − | use=web, web=checkip.dyndns.com/, web-skip='IP Address'
| + | use=web, web=checkip.dyndns.com/, web-skip='IP Address' |
| − | ## DynDNS username and password here
| + | ## DynDNS username and password here |
| − | login=RedTeam
| + | login=RedTeam |
| − | password=##YOUR PASSWORD##
| + | password=##YOUR PASSWORD## |
| − | ## Default options
| + | ## Default options |
| − | protocol=dyndns2
| + | protocol=dyndns2 |
| − | server=members.dyndns.org
| + | server=members.dyndns.org |
| − | ## Dynamic DNS hosts
| + | ## Dynamic DNS hosts |
| − | rrafara.dyndns.org</nowiki>
| + | rrafara.dyndns.org</nowiki> |
| | | | |
| | Restart ddclient service | | Restart ddclient service |