'DDNS 스크립트'에 해당되는 글 1건

  1. 2014.06.22 DNSEver DDNS 로그 남기는 스크립트








[수정본] IP까지 남기도록 수정

파일 위치 : /usr/local/sbin/ddns_update.sh

 vi : /usr/local/sbin/ddns_update.sh

 

#!/bin/sh

 

 #* 변수 정의*#

mkdir -p /tmp/ddns/ 

dt=$(date +%y%m%d)

#* 도메인의 몸통만 적어주세요 예: wisegiga *#

NICK=''
#* 업데이트할 DDNS 주소를 입럭해 주세요 *#

DDNS_HOST=''
#* DNSEver 아이디와 DDNS 인증코드를 입력해 주세요 *#

USER=''
PASSWORD=''

#* 변경금지 변수 *#

WGET='/usr/bin/wget'
OPTS=-"O /tmp/ddns/ddns_${NICK}.tmp -o /dev/null"
curl -s ifconfig.me > "/tmp/ddns/tmp_ip_${NICK}"
IP=$(cat "/tmp/ddns/tmp_ip_${NICK}")

#* 로그가 남을 폴더를 지정해 주세요 $ 뒷부분은 수정 금지! *#
LOGDIR="/root/DDNS/${NICK}/"

mkdir -p ${LOGDIR}

${WGET} ${OPTS} --http-user=${USER} --http-passwd=${PASSWORD} "http://dyna.dnsever.com/update.php?host[${DDNS_HOST}]&"
sed -n '4p' /tmp/ddns/ddns_${NICK}.tmp | sed -n 's/.*code=\"\([^\"]\+\).*/\1/p' > /tmp/ddns/tmp_${NICK}

  case $(cat /tmp/ddns/tmp_${NICK}) in
    "720")
        echo -e "DDNS Update Success at $(date) -- $DDNS_HOST (${IP})" >> ${LOGDIR}/DDNS_Log_$dt
    ;;
    "201")
        echo -e "No Update Host Name at $(date) -- $DDNS_HOST (${IP})" >> ${LOGDIR}/DDNS_Log_$dt
    ;;
    "721")
        echo -e "Already Updated at $(date) -- $DDNS_HOST (${IP})" >> ${LOGDIR}/DDNS_Log_$dt
    ;;
    "304")
        echo -e "DDNS not registered or Not Your Domain at $(date) -- $DDNS_HOST (${IP})" >> ${LOGDIR}/DDNS_Log_$dt
    ;;
  esac

#* 임시 폴더 정리*#

rm -rf /tmp/ddns/ddns_${NICK}.tmp
rm -rf /tmp/ddns/tmp_${NICK} 

 

#* 스크립트 종료 *#

에디터 종료는 :wq

 

권한 설정  

chmod 750 /usr/local/sbin/ddns_update.sh

 

크론텝에 추가 for 4시간에 한번씩 실행

crontab -e

 

* */4 * * *        usr/local/sbin/ddns_update.sh

 

만일 크론텝이 안된다면

 

mkdir -p ${LOGDIR}

밑에 while ( : ) do

맨 밑에

sleep 4h

done

을 추가해 주시면 됩니다

 

 

Posted by 현종이닷
,