발급 받은 Access Token으로 우리의 서버에서 알림을 전송 해줄 수 있도록 해보겠습니다.
1. 만들어 둔 AWS 서버로 터미널 오픈
2. 환경 변수 파일 열기
- vi .profile
❗ 파일을 열었는데 아무 내용도 없다면 잘못된 위치에서 파일을 여신겁니다.
cd 명령어를 이용해 최 상단 디렉토리(User 폴더)로 이동해서 다시 시도 해 주세요!
3. Token 및 프로젝트 경로 입력 후 저장
- 단축키 Shift + G 를 눌러 제일 하단으로 내려갑니다.
- 단축키 i 누르시고 '이전 챕터에서 발급받은 Token' 붙여넣기
# Slack key export Slack_Token="Access Token" # # SourceDir export env_autoTrade_Dir="자신의 프로젝트 폴더 절대 경로 ex)/home/ubuntu/~" #
- ESC, :wq, 엔터 차례로 입력 해 주시면 저장됩니다.
4. 환경 변수 불러오기
- source .profile
위 명령어를 입력 해 줍니다.
현재 서버가 잘 살아 있는지 체크 해 주는 프로그램입니다.
1. SystemCheck_alertBot.py
코드는 아래! ↓
https://github.com/hunmin815/autoTrade/blob/master/SystemCheck_alertBot.py 👈 (새 창)
- 자신의 채널명 OR 채널ID를 잘 입력 해 주세요!
시스템의 날짜를 조회하여 시스템의 상태를 간단히 조회하는 방식입니다.
파일 만드는 법은 이제 간단하시죠? 넘어가겠습니다 👍
2. SystemCheck.sh
코드는 아래! ↓
https://github.com/hunmin815/autoTrade/blob/master/SystemCheck.sh 👈 (새 창)
1번의 SystemCheck_alertBot.py 파일을 실행시켜 줄 스크립트 파일입니다.
- 유저 명(폴더)를 알맞게 변경 해 주세요!
저장 하시고 파일에 권한 주시는거 itzy... 않으셨죠?- chmod 750 SystemCheck.sh
3. 실행 결과
- ./SystemCheck.sh
명령어를 입력하시면
HTTP 상태 코드 200이 출력됩니다.
요청을 제대로 처리 했다는 의미입니다!
귀여운 알림 봇이 이렇게 메시지를 전달 해 주었습니다.
자동매매 프로세스가 잘 동작 중인지 체크 해 주는 프로그램입니다.
1. ProcessCheck_alertBot.py
코드는 아래! ↓
https://github.com/hunmin815/autoTrade/blob/master/ProcessCheck_alertBot.py 👈 (새 창)
- 마찬가지 채널명 OR 채널ID를 잘 입력 해 주세요!
2. ProcessCheck.sh
코드는 아래! ↓
https://github.com/hunmin815/autoTrade/blob/master/ProcessCheck.sh 👈 (새 창)
- 유저 명(폴더)를 알맞게 변경 해 주세요!
권한 변경- chmod 750 ProcessCheck.sh
3. 실행 결과
- ./ProcessCheck.sh
- 현재 프로세스가 죽어있다면 재기동을 시켜줍니다.
- 현재 프로세스가 살아있다면 아래와 같이 살아있다고 알림이 옵니다.
매수 목표가와 현재가를 알려주는 프로그램입니다.
1. Tprice_alertBot.py
코드는 아래! ↓
https://github.com/hunmin815/autoTrade/blob/master/Tprice_alertBot.py 👈 (새 창)
- 채널, 종목 코드를 잘 입력 해 주세요!
2. Tprice_alertBot.sh
코드는 아래! ↓
https://github.com/hunmin815/autoTrade/blob/master/Tprice_alertBot.sh 👈 (새 창)
- 유저 명(폴더)를 알맞게 변경 해 주세요!
권한 변경- chmod 750 Tprice_alertBot.sh
3. 실행 결과
- ./Tprice_alertBot.sh
- 매수 목표가, 현재가를 Slack으로 전송 해 줍니다.
- 짠 🎉
위에서 만든 것들을 매 번 수동으로 실행 하고 있을 순 없겠죠??
'자동화에 미친 자'로써 가만히 있을 수 없습니다... 😅
정해진 시간에 시스템이 알아서 실행시켜 알림을 받아볼 수 있도록 설정 해 보겠습니다.
1. *Crontab 설정 하기
- crontab -e (편집기를 선택하라고 물으면 vi로 열어주세요)
명령어를 입력 하시면 이런 파일이 하나 열립니다.
스크립트 파일을 꼭! 절대경로로 적어주셔야 합니다.
아래 붙여넣으시고 알맞게 수정 해 주세요.####################### autoTrade ####################### 50 08 * * * /home/ubuntu/autoTrade2/SystemCheck.sh & sleep 05; /home/ubuntu/autoTrade2/ProcessCheck.sh 00 09 * * * sleep 05; /home/ubuntu/autoTrade2/Tprice_alertBot.sh ####################### autoTrade #######################
앞 부분에 별표(*)는 분 시 일 월 요일 순으로 언제 실행 될지 설정하는 부분입니다.
그다음엔 실행될 명령어 및 파일, sleep 05는 5초간 쉬었다가 실행한다는 의미입니다.
즉, 08시 50분이 되면 SystemCheck.sh 파일을 실행하고 5초 뒤 ProcessCheck.sh 파일을 실행
09시 00분 05초에 Tprice_alertBot.sh 파일이 실행됩니다.
저장
- ESC -> :wq -> Enter
이렇게 새로운 crontab이 설정되었다고 뜹니다.
- crontab -l
설정 된 목록을 보실 수 있습니다.
- sudo systemctl restart cron
설정 후 cron데몬을 재 기동 시켜줍니다.
🧐 *Crontab ?
Unix와 Linux에서 사용되는 job scheduler 입니다.
특정 시간 혹은 반복된 작업을 할 때 예약을 걸어 둘 수 있습니다.
2. crontab이 정상적으로 실행 되지 않을 때
저 또한 기본적으로 실행이 되지 않고있었습니다.
- vi /var/log/syslog
시스템 로그 파일을 보시면, *MTA가 install 되어 있지 않다고 나옵니다.
MTA 설치
- sudo apt-get -y install postfix
Local only 선택
그냥 OK
- dpkg -l | grep postfix
제대로 설치가 된지 확인
혹시 모르니
- sudo systemctl restart cron
cron 데몬을 재기동 시켜줍니다.
이젠 완벽하게 동작 하실 겁니다!
🧐 *MTA ?
메일 전송 관리자* 입니다.
cron데몬이 명령을 실행 할 때 메일을 사용하여 사용자에게 출력을 전달하기 때문에 필요합니다.
여기까지 오시느라 고생하셨습니다. 👏👏
이렇게 설정 하시면 매일 서버에 접속하지 않으셔도 알림을 통해 받아보실 수 있습니다.
스마트폰에 Slack 메신저를 설치하시고 채널에 로그인 하세요!
감사합니다.
참고 자료
https://www.youtube.com/watch?v=7lFbKTVzj1c
(투자 타이밍 이제 고민하지 마세요. 너무 쉬운 비트코인 자동매매 1강)
https://github.com/sharebook-kr/pyupbit
(pyupbit Github)