diff --git a/src/bind/scripts/update-dns.sh b/src/bind/scripts/update-dns.sh new file mode 100755 index 0000000..17da942 --- /dev/null +++ b/src/bind/scripts/update-dns.sh @@ -0,0 +1,31 @@ +#!/bin/sh +# update-dns.sh +# 从 /private/argus/etc/dns.conf 读取 IP,写入 /etc/resolv.conf + +DNS_CONF="/private/argus/etc/dns.conf" +RESOLV_CONF="/etc/resolv.conf" + +# 检查配置文件是否存在 +if [ ! -f "$DNS_CONF" ]; then + echo "配置文件不存在: $DNS_CONF" >&2 + exit 1 +fi + +# 生成 resolv.conf 内容 +{ + while IFS= read -r ip; do + # 跳过空行和注释 + case "$ip" in + \#*) continue ;; + "") continue ;; + esac + echo "nameserver $ip" + done < "$DNS_CONF" +} > "$RESOLV_CONF".tmp + +# 替换写入 /etc/resolv.conf +cat "$RESOLV_CONF".tmp > "$RESOLV_CONF" +rm -f "$RESOLV_CONF".tmp + +echo "已更新 $RESOLV_CONF" +