[비트코인 자동매매 Ch.6] Slack으로 알림 받기

Hoon;·2021년 12월 19일
2
post-thumbnail

발급 받은 Access Token으로 우리의 서버에서 알림을 전송 해줄 수 있도록 해보겠습니다.

- 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)

profile
S/W Engineer & Developer | 블로그 이전 - https://bakingdevlog.tistory.com

0개의 댓글