Today Sangmin Learned
article thumbnail
728x90

어제 밤에 집에서 팀원의 도움을 좀 받아서, crontab까지 완벽하게 작동 시켰다.

 

* * * * * source /Users/sangminpark/Desktop/covid19-today-slackbot/slackbot/bin/activate && /Users/sangminpark/Desktop/covid19-today-slackbot/slackbot/bin/python3 /Users/sangminpark/Desktop/covid19-today-slackbot/slackbot.py

 

* * * * *은, crontab에서 매 1분 마다를 뜻한다. 그 뒤에

 

source /Users/sangminpark/Desktop/covid19-today-slackbot/slackbot/bin/activate

 

는, 가상환경을 켜는 명령이고, && 을 통해 + .py를 실행하는 명령과 함께 묶었다.

 

&& /Users/sangminpark/Desktop/covid19-today-slackbot/slackbot/bin/python3 /Users/sangminpark/Desktop/covid19-today-slackbot/slackbot.py

 

python3이 있는 디렉토리까지 써주고, 다시 한 번 또 .py가 있는 디렉토리까지 써줘야 된다는 점은 몰랐는데, 팀원의 도움으로 알게 되었다. 아무튼, 저렇게 두 번 다 최상위 /Users 부터 쭉쭉 내려가야 된다는 점을 알게 되었다.

결과적으로 저 명령은, <매 분마다 가상환경을 켜고 파이썬 파일을 실행해서 슬랙봇이 작동되게 하는> crontab 명령어이다. 이게 성공하여 슬랙 채널에 매 분마다 코로나 확진자수가 나오게 되었고, 이제 * * * * *을 00 12 * * *로 바꿔줘서, 매일 정오에 금일 발표된 확진자수를 알려주는 명령까지 완성했다.

 

그런데 이 로직이 제대로 돌아갈 수 있으려면, 매일 정오에 내 맥북이 켜져있어야 한다. 당장 오늘만 하더라도 정오에 맥북이 켜져 있지 않았기 때문에 슬랙 채널에 뜨지 않았다. 그래서, AWS의 힘을 빌려 가상으로 존재하는 컴퓨터 한 대를 만들어서 그 서버에서 git clone을 받아서 켜두도록 해야겠다는 생각을 하게 되었다. 그렇게 된다면, AWS 자체에서 서버를 항상 켜두기 때문에 내 맥북이 켜져 있지 않더라도 언제나 crontab 명령을 작동하게 할 수 있다. 오늘은 일단 그래서, AWS EC2 인스턴스(가상의 컴퓨터)를 만들고 내 터미널에서 해당 인스턴스에 접근하는 것까지 끝냈다. EC2 인스턴스 접속은

 

$ ssh -i .ssh/[파일이름].pem ec2-user@[DNS주소]

 

로 해야 한다.

git install도 한 지라, 이제 github.com/steadily-worked/covid19-today-slackbot을 clone해와야 되는데..

 

steadily-worked/covid19-today-slackbot

오늘 발표한 어제 코로나 확진자 수를 알려주는 슬랙봇. Contribute to steadily-worked/covid19-today-slackbot development by creating an account on GitHub.

github.com

문제는 이 파이썬 파일이 동작하려면 Slackbot의 토큰이 필요하고, 그 토큰을 원래는 .py에 보이게끔 넣어서 실행을 하는 방식인데, 보안 상의 문제로 git에 토큰을 올리면 안되기 때문에 올리지 않았다는 점이다. 그래서, 현재는 git clone을 해올 수가 없다. 이걸 안보이게끔 따로 저장을 한 후에 git clone을 해야 되는데, 따로 저장을 하는 법을 아직 찾지 못해서 멈췄다. 이제 저장하는 방법을 찾아봐야겠다. EC2 인스턴스 만드는 방법은 .. makemethink.tistory.com/181?category=782008 여기에 아주 잘 나와있어서 여기를 참고했다.

 

[AWS] 만들어놓은 서버에 접속하기 (Mac OS)

사이드 프로젝트 배포를 위해 처음으로 AWS EC2 서버를 다뤄보게 되었습니다. 팀원이 미리 인스턴스를 만들어놓았기 때문에 이 글에서 인스턴스 생성은 따로 설명하지 않습니다. 이미 생성된 인

makemethink.tistory.com

AWS EC2 서버에서 가상환경 이름을 slackbot으로 만든 후에 켜는 것까지 완료했다.

EB CLI를 설치한 후

 

$ virtualenv /tmp/slackbot(여기다가 원하는 이름을 적으면 됨. 본인은 slackbot이라고 정했음.

 

이렇게 하면, 가상환경이 만들어지고,

 

source /tmp/slackbot/bin/activate

 

이 코드로 가상환경을 켤 수 있다. 일반 Python과 마찬가지로, deactivate만 입력하면 가상환경이 꺼진다.

AWS EC2에서 가상환경을 만들고 켠 후 끈 모습

이제 토큰을 안보이는 다른 곳에 두고 반영하는 방법을 찾아봐야겠다.

profile

Today Sangmin Learned

@steadily-worked

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!