드디어 New Post Noti 프로젝트의 마지막 포스팅이다. 엄밀히 마지막이라고 할 수는 없는게 혹시라도 나중에 기능을 추가한다거나 코드를 개선한다던가 하면 꼭 이번이 마지막 포스팅이라고는 할 수 없겠지만...
지난 포스팅에서는 New Post Noti의 자동트윗을 구현하고 작동하는 것까지 확인해보았다.
>_ 지난 포스팅 보기
[New Post Noti] 새 포스팅 알림 트윗하기
이 프로젝트 포스팅을 하면서 티스토리 플러그인에서 트위터로 내보내기 기능을 지원하는걸 알아버렸다... 하지만 뭔가 내 손으로 만들었다는게 중요하니까 회의감은 느끼지 않으려고 한다. 내
heibondk.tistory.com
이번 포스팅에서는 완성된 New Post Noti를 ssh 서버 위에서 crontab을 사용해서 실시간 사용이 가능하게 만드는 것에 대해서 다뤄보겠다.
Crontab?
소프트웨어 유틸리티 cron은 유닉스 계열 컴퓨터 운영 체제의 시간 기반 잡 스케줄러이다.
소프트웨어 환경을 설정하고 관리하는 사람들은 작업을 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 스케줄링하기 위해
cron을 사용한다.
출처 : 위키백과
위키백과의 설명을 보면 위와 같다. 마치 Windows에서 볼 수 있는 작업 스케쥴러와 같은 기능을 한다고 보면 될 것 같다.
ssh 서버에 New Post Noti 올리기
나는 같은 팀의 팀원이 자신의 NAS에 ssh 서버를 구축해서 포트를 파주었기 때문에 그 ssh 서버에서 작동을 시킬 것이다.
터미널에서 ssh 서버에 접속을 해준다.
$ git clone https://github.com/HarenKei/NewPostNoti
git clone 명령어를 사용해서 내 리포지토리에 있는 NewPostNoti를 클론해주었다.
하지만 지난 포스팅에서 말했듯, 액세스 키와 컨슈머 키에 관련된 정보는 .gitignore로 원격 저장소를 따라가지 않도록 해주었기 때문에, 내 로컬 저장소에서 ssh 서버로 해당 파일을 복사해주는 과정이 필요했다. 이 작업은 scp 명령어를 통해 수행할 수 있다.
자세한 사용은 추후에 따로 crontab과 scp 명령어에 대한 포스팅을 따로 해두고 싶다. 일단은 여기서 내가 사용한 명령어만 정리해보도록 하겠다.
$ scp -P (포트번호) -r (로컬 디렉토리) (서버IP or 도메인):(서버 내 디렉토리)
scp 명령어의 옵션 중 2개가 사용되었다.
-P : 기본포트 (22번)이 아닐때 포트번호를 지정해주기 위해 사용함.
-r : 개별 파일이 아닌 디렉토리를 복사해주기 위해 사용함
공부했던 자료들에서는 포트번호를 지정하는 동시에 디렉토리 자체를 복사해주는 방법을 알 수가 없어서 이리저리 입력해보다 알게 되었다. 포트를 먼저 지정해주어야 한다.
Crontab 사용하기
$ crontab -e
위 명령어로 크론탭을 편집해보자. vi 에디터로 크론탭을 작성할 수 있다.
* * * * * echo "Hello" >> /home/haren/test.log
* * * * * cd /home/haren/HarenProject/NewPostNoti; ./run.sh
프로젝트가 있는 디렉토리만 주고 .py 파일을 바로 실행시킬 수 있었는데, 왜인지 되지 않았다.
DEF:CON 팀원의 도움을 받아서 Echo 쉘을 작성해서 실행시켜주는 방향으로 했다.
매 분마다 스크립트를 실행하도록 하여서 거의 실시간에 가까운 서비를 제공할 수 있도록 하였다.
이제 블로그에 글을 작성하면 1분 뒤에 내 트위터에 새 글이 올라왔다는 트윗이 올라온다.
이렇게 New Post Noti 프로젝트의 모든 작업이 완료되었다.
사용하다가 수정해야할 사안이 생기면 수정을 하고, 블로그에 포스팅을 남길 수 있도록 해보겠다.
아직까지는 문제가 없어보이는데... 완벽한 프로그램은 없기 마련이니까...
'Project > Blog New Post Noti' 카테고리의 다른 글
[New Post Noti] 새 포스팅 알림 트윗하기 (0) | 2021.09.08 |
---|---|
[New Post Noti] 블로그를 파싱해보자. (0) | 2021.09.04 |
[New Post Noti] Python으로 트윗을 작성하기 (2) | 2021.09.03 |
[New Post Noti] 파이썬 트위터 패키지 Tweepy (0) | 2021.09.03 |
[New Post Noti] 트위터 API를 사용해보자 (2) - 트위터 API 발급받기 (2) | 2021.09.01 |