티스토리 뷰
2부에서 에서 발급 받은 token과 account id, record id들과 zone id를 이용해서 패킷을 보내야한다.
shell script 파일을 사용하면 된다. DNSimple에서 기본적으로 패킷 예시를 준게 있다.
일단 ssh로 우분투에 접속하면 ...
파일 저장위치를 정하고 vi으로 파일을 만들면 된다.
저같은경우
/home/jrj325/bin 에 DDNS.sh 파일을 만들었다.
그리고나서 vi로열고 내부를 적어야 한다.
위와 같이 입력하면된다.
[] 부분은 아까 적어놓았던 token과 account id, zone id, record id를 이용해서 넣으면 된다.
#!/bin/bash #!/bin/sh TOKEN="[아까 받은 token]" ACCOUNT_ID="[Account id]" ZONE_ID="[Zone id]" RECORD_ID="[record id]" IP=`curl -s http://icanhazip.com/` curl -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -X "PATCH" \ -i "https://api.dnsimple.com/v2/$ACCOUNT_ID/zones/$ZONE_ID/records/$RECORD_ID" \ -d "{\"content\":\"$IP\"}" |
복붙시에 깨질수도 있으니 조심하길 바란다.
그럼 이제 테스트 해보자.
$ sh DDNS.sh 로 실행 하면 ( 맨앞 sh를 적지 않아도됨. )
이런식으로 정보가 뜨면 잘 보내진다는 것이다.
그럼 이제 주기적으로 이 패킷을 DNSimple에 보내야한다.
그를 위해 crontab을 사용하기로 한다. https://ko.wikipedia.org/wiki/Cron
$ sudo crontab -e 를 실행하면.
( crontab은 계정별로 다르게 생성 된다.
sudo crontab과 계정의 crontab의 내용이 다르기 때문에. crontab에 다른기능을 넣고 싶다면 sudo로 하거나 계정 crontab에서 접근이 가능하게 세팅해 놓는게 좋다.)
처음 실행하면 # 주석이 달린 퍼런 글자들이 많을 것이다. 그럼 맨마지막줄에
위와 같이 넣어주면된다. /home/jrj325/bin/DDNS.sh는 내 DDNS.sh파일이 존재하는 위치이다.
# m h dom mon dow command */15 * * * * /home/jrj325/bin/DDNS.sh |
# ┌───────────── min (0 - 59) # │ ┌────────────── hour (0 - 23) # │ │ ┌─────────────── day of month (1 - 31) # │ │ │ ┌──────────────── month (1 - 12) # │ │ │ │ ┌───────────────── day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0) # │ │ │ │ │ # │ │ │ │ │ # * * * * * command to execute
이기 때문에 m => */15 는 , 15분마다 실행시키라는 뜻이고 나머지가 다 * 인 이유는, 모든 시간에 작동하라는 뜻이다.
그리고 /home/jrj325/bin/DDNS.sh 는 DDNS 패킷을 보내는 파일 있는 위치를 지정해주면 된다. (앞에 sh를 안붙여도됨)
그럼 이제 DDNS 끝 ~!
추가로.. 잘돌아가는지 확인하는 로그를 찍기로 하였다.
로그를 찍는 파이썬 파일을 만든뒤
$ sudo vi /home/jrj325/bin/log.py
import time import urllib, re ip = re.search('"([0-9.]*)"', urllib.urlopen("http://ip.jsontest.com/").read()).group(1) fin = open("/home/jrj325/bin/log.log","r") lines = fin.readlines() fin.close() file = open("/home/jrj325/bin/log.log","w") start = 0; end = len(lines); if len(lines) >= 20 : start = 2; end = 20; for i in range(start,end): file.write(lines[i]) file.write("Current : " + time.strftime("%x , %X") + "\n") file.write("IP : "+ ip+"\n")
file.close() |
파일을 만들어주고 DDNS.sh 파일 마지막에
로그 파이썬 실행 명령어를 추가해주면
$ vi log.log 를 확인해보면
위와 같이 언제 DNSimple로 언제 어떤아이피를 보냈는지 저장하는 로그를 만들었습니다.
끝
- Total
- Today
- Yesterday
- 창숨김
- C# 책
- iptime 2000au
- ipTIME
- 창숨기기 프로그램
- readonly
- ROS2
- 블로그 이야기
- c#초보
- 책 소개
- c#ㄱㄱ
- 창숨기기
- 디스크 쓰기 금지되어 있습니다
- ubuntu
- 블로그 공지
- C# 속으루..
- 창숨김 프로그램
- c#
- C#입문
- 2000au
- c#.net
- 블로그
- 블로그 개설
- USB
- 창숨김 다운
- Node
- ROS2 설치
- C 책
- robot
- C#책
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |