[수정본] 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
을 추가해 주시면 됩니다
'PC > Linux' 카테고리의 다른 글
데비안 호스트네임 변경하기 (0) | 2015.01.03 |
---|---|
APCUPS 소스로 설치하기 (0) | 2014.08.15 |
리눅스에서 쉘로 coolsms 사용하기 (0) | 2014.07.05 |
실사용예로 알아보는 간단한 스크립트 - (1) read echo case 등 (0) | 2014.07.05 |
Bind DDNS 구축하기 (0) | 2014.07.05 |