добавление DynDNS к NSD
Добавлено: 2019-02-21 14:30:26
Вдохновившись идеей Майкла Клеменса сваял скрипт, парсящий лог апача на предмет dyndns запросов Получилось такое вот поделие:
Кому надо - пользуйтесь на здоровье! А еще лучше - придумайте, как сделать это все в одном awk.
Код: Выделить всё
http://blahblahblah.blah/blah.html?domain?subdomain?password
Код: Выделить всё
#!/bin/sh
PASS="Qwerty12"
LOG=/var/log/httpd-access.log
TIMESTAMP=`date +%s`
tail -r ${LOG} | awk -F'?' -v pass=${PASS} '$0~pass && !a[$2,$3]++' | {
while read LINE
do
NEW_IP=`echo ${LINE} | awk '{print $1}'`
DOMAIN=`echo ${LINE} | awk -F '?' '{print $2}'`
SUBDOMAIN=`echo ${LINE} | awk -F '?' '{print $3}'`
ZONEFILE=/usr/local/etc/nsd/${DOMAIN}.zone
CURRENT_IP=`drill a ${SUBDOMAIN}.${DOMAIN} @127.0.0.1 | grep ${SUBDOMAIN} | awk '{print $5}'`
if [ "${CURRENT_IP}" != "${NEW_IP}" ] && [ "${CURRENT_IP}" != "" ]
then
sed -i '' "4s/.*/ ${TIMESTAMP}/;s/^${SUBDOMAIN}.*/${SUBDOMAIN} IN A ${NEW_IP}/" ${ZONEFILE}
fi
done
}
nsd-control reload