[수정본] 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
을 추가해 주시면 됩니다