[#30] ftp容器增加动态检测并更新dns.conf到share目录

This commit is contained in:
2025-10-29 17:15:48 +08:00
parent ed0d1ca904
commit ccc141f557
5 changed files with 67 additions and 3 deletions

View File

@@ -0,0 +1,40 @@
#!/bin/bash
set -uo pipefail
# Publish latest /private/argus/etc/dns.conf to ${FTP_BASE_PATH}/share/dns.conf
SRC="/private/argus/etc/dns.conf"
FTP_BASE_PATH="${FTP_BASE_PATH:-/private/argus/ftp}"
DST_DIR="${FTP_BASE_PATH}/share"
DST="${DST_DIR}/dns.conf"
UID_VAL="${ARGUS_BUILD_UID:-2133}"
GID_VAL="${ARGUS_BUILD_GID:-2015}"
INTERVAL="${DNS_PUBLISH_INTERVAL:-10}"
log() { echo "$(date '+%Y-%m-%d %H:%M:%S') [DNS-Publish] $*"; }
mkdir -p "$DST_DIR" 2>/dev/null || true
log "service start: SRC=$SRC DST=$DST interval=${INTERVAL}s"
while true; do
if [[ -f "$SRC" ]]; then
# Only sync when content differs
if ! cmp -s "$SRC" "$DST" 2>/dev/null; then
tmp="${DST}.tmp"
if cp "$SRC" "$tmp" 2>/dev/null; then
mv -f "$tmp" "$DST"
chown "$UID_VAL":"$GID_VAL" "$DST" 2>/dev/null || true
chmod 0644 "$DST" 2>/dev/null || true
ts_src=$(date -r "$SRC" '+%Y-%m-%dT%H:%M:%S%z' 2>/dev/null || echo "?")
log "synced dns.conf (src mtime=$ts_src) -> $DST"
else
log "ERROR: copy failed $SRC -> $tmp"
fi
fi
else
log "waiting for source $SRC"
fi
sleep "$INTERVAL"
done