duckdns 后台维护更新cron脚本
作者:
老陕西 | 来源:发表于
2025-07-01 13:01 被阅读0次$ crontab -e
* * * * * /home/YOUR_NAME/duckdns_update.sh
#!/bin/bash
# /home/YOUR_NAME/duckdns_update.sh
# 配置项
DOMAIN="YOUR_DOMAIN_NAME" # 只填子域名,比如 myhome
TOKEN="YOUR_TOKEN" # 你的DuckDNS token
# 自动获取脚本所在目录和文件名
SCRIPT_PATH="$(readlink -f "$0")"
SCRIPT_DIR="$(dirname "$SCRIPT_PATH")"
SCRIPT_BASE="$(basename "$SCRIPT_PATH" .sh)"
LOG="${SCRIPT_DIR}/${SCRIPT_BASE}.log"
CACHE="${SCRIPT_DIR}/${SCRIPT_BASE}.cache"
# 获取当前时间戳
now() {
date "+%Y-%m-%d %H:%M:%S"
}
# 获取当前公网IPv4地址
CURRENT_IP=$(curl -s https://ipv4.icanhazip.com/ | tr -d '\n')
# 获取上次更新的IP
LAST_IP=""
[ -f "$CACHE" ] && LAST_IP=$(cat "$CACHE")
if [ "$CURRENT_IP" != "$LAST_IP" ]; then
RESPONSE=$(curl -s "https://www.duckdns.org/update?domains=${DOMAIN}&token=${TOKEN}&ip=${CURRENT_IP}&verbose=true")
echo "$CURRENT_IP" >"$CACHE"
echo "$(now) DuckDNS updated: $RESPONSE" >>"$LOG"
else
echo "$(now) No IP change: $CURRENT_IP" >>"$LOG"
fi
# 保留日志文件最后100行
tail -n 100 "$LOG" >"${LOG}.tmp" && mv "${LOG}.tmp" "$LOG"
本文标题:duckdns 后台维护更新cron脚本
本文链接:https://www.haomeiwen.com/subject/hlzigjtx.html
网友评论