프로젝트/비트코인 자동매매

리눅스 서버에서 비트코인 자동매매 프로그램 실행하기

Tech&Fin 2021. 12. 21. 17:43
반응형

윈도우 환경에서 파이썬으로 만든 비트코인 자동매매 프로그램을 실행하면 오류나 업비트 서버 점검 등으로 인해 오류가 발생하는 경우 프로그램이 종료 되어 수동으로 다시 실행해 주어야 하는 경우가 꽤 자주 발생하게 됩니다.

 

윈도우 환경에서도 스케쥴러에 등록하는 방법이 있긴 하지만 스케쥴러를 등록하는 것이 복잡하기도 하지만 실행이 완벽하게 되지 않아 사용하기 불편한 점이 많습니다.

 

또한 가정용 PC의 경우에는 일반적인 업무 용도로도 사용하기도 하며 윈도우의 잦은 업데이트로 재부팅이 자주 필요하기 때문에 프로그램을 끊었다 다시 돌려야 하는 경우가 많이 발생합니다.

 

이런 불편함은 프로그램을 리눅스 서버에서 수행하게 되면 어느정도 해소가 가능한데 오늘은 리눅스에서 파이썬 프로그램을 실행하는 방법에 대해서 살펴 보겠습니다.

 

 

목차 - 클릭하면 이동합니다.

     

    리눅스 서버 설정

    먼저 파이썬을 실행하기 전에 리눅스 서버를 만들고 설정을 해야 하는데요. 클라우드 서비스를 통해 무료로 제공 받을 수 있는 서버로도 파이썬 프로그램 몇 가지 정도를 돌리는데는 전혀 문제가 없기 때문에 전기세 및 하드웨어 비용을 줄이기 위해 무료 클라우드 서버를 사용하시면 좋습니다.

     

    오라클 클라우드 프리티어 서버 생성

    무료 클라우드 서비스 중에서 가장 좋은 스펙을 제공하고 추가 과금이 되지 않는 오라클 클라우드 프리티어를 사용하면 좋은데 해당 내용은 아래 링크를 통해 이전 포스팅을 참고하시면 가입 및 서버를 생성하는데 도움을 받으실 수 있습니다.

     

    2021.06.02 - [코딩스토리/클라우드 서버] - 오라클 클라우드 무료 가입 - 오류 및 주의사항

     

    오라클 클라우드 무료 가입 - 오류 및 주의사항

    이번 시간에는 무료로 사용할 수 있는 클라우드 서버 중 하나인 오라클 클라우드를 무료 가입하는 방법과 참고할 사항에 대해서 살펴 보겠습니다. 무료로 클라우드 서버를 이용할 수 있는 업체

    technfin.tistory.com

     

    2021.06.03 - [코딩스토리/클라우드 서버] - 오라클 클라우드 인스턴스 생성 - 서버 만들기

     

    오라클 클라우드 인스턴스 생성 - 서버 만들기

    오라클 클라우드 프리티어(무료버전)에 무사히 가입을 완료하셨다면 이제 앞으로 사용할 서버를 할당 받기 위해 서버 인스턴스를 생성해야 합니다. 아직 오라클 클라우드에 가입하

    technfin.tistory.com

     

    서버 설정

    서버를 만들었다면 몇 가지 세팅을 해 주어야 합니다. 아래 포스팅을 참고하여 하나씩 설정 해 보겠습니다.

     

    먼저 OS 패키지를 최신으로 업데이트 해 줍니다. 시간이 15~30분 정도 소요됩니다.

     

    2021.06.06 - [코딩스토리/리눅스] - 리눅스 서버 패키지 업데이트 하기 - dnf update(upgrade)

     

    리눅스 서버 패키지 업데이트 하기 - dnf update(upgrade)

    이번 시간에는 리눅스 서버에 설치된 package들을 최신 버전으로 업데이트(업그레이드) 하는 방법에 대해서 살펴 보겠습니다. 아직 리눅스 서버를 설치하지 않으신 분들은 아래 포

    technfin.tistory.com

     

    그리고 아래 포스팅을 참고하여 서버의 공인 아이피를 부여 받습니다.

     

    2021.06.04 - [코딩스토리/클라우드 서버] - 오라클 클라우드 고정IP 설정하기

     

    오라클 클라우드 고정IP 설정하기

    이번 시간에는 생성한 오라클 클라우드 서버에 고정IP 설정하는 방법에 대해서 알아보겠습니다. 오라클 클라우드 서버 생성 방법은 아래 포스트를 참고 부탁 드립니다. 2021.06.03 - [코딩스

    technfin.tistory.com

     

    Putty 프로그램을 다운로드 받아 부여받은 공인 IP로 접속합니다. 이 때 오라클 클라우드 서버를 만들때 복사/붙여넣기 했던 Private Key 파일을 이용해서 접속해야 합니다.

     

    처음 접속할 때는 opc라는 계정으로 접속할 수 있으며 그 후에 root 계정 비밀번호를 설정해야 합니다. 아래 포스팅을 참고 하시면 됩니다.

     

    2021.06.06 - [코딩스토리/리눅스] - 리눅스 루트(root) 계정 비밀번호 설정 및 로그인

     

    리눅스 루트(root) 계정 비밀번호 설정 및 로그인

    이번 시간에는 리눅스 서버의 관리자 계정인 루트(root)의 비밀번호를 최초 설정하는 방법과 루트계정으로 로그인 하는 방법에 대해서 알아 보겠습니다. TECH&FIN 블로그에서는 PuTTY라는 터미널 프

    technfin.tistory.com

     

    루트 계정 비밀번호를 설정했다면 이제 python이라는 사용자 계정을 생성해 주겠습니다.

     

    2021.06.11 - [코딩스토리/리눅스] - 리눅스 사용자 계정 추가하기 - 오라클 리눅스8

     

    리눅스 사용자 계정 추가하기 - 오라클 리눅스8

    이번 시간에는 리눅스에서 사용자 계정을 추가하는 방법에 대해서 살펴 보겠습니다. 서버 생성 방법 및 PuTTY를 이용한 접속 방법은 아래 포스트를 참고 부탁 드리겠습니다. 2021.06.03 - [코딩스토

    technfin.tistory.com

     

    생성한 python이라는 계정으로 접속하기 위해서 SSH Key 설정을 하겠습니다.

     

    2021.06.11 - [코딩스토리/리눅스] - 리눅스 SSH Key 추가하여 사용자로 로그인하기 - 오라클 리눅스8

     

    리눅스 SSH Key 추가하여 사용자로 로그인하기 - 오라클 리눅스8

    이번 시간에는 서버에 접속할 때 사용자 계정으로 직접 접속할 수 있도록 SSH Key의 Public Key를 추가하는 방법에 대해서 살펴 보겠습니다. PuTTYgen을 사용하여 SSH Key를 생성하는 방법은 아래 포스트

    technfin.tistory.com

     

    해도 되고 안해도 되지만 사용자에게 root로 실행하는 권한을 부여하면 root 권한이 필요할때마다 root로 변경해서 수행하지 않아도 됩니다. 설정하실 분들은 아래 내용을 참고하시면 됩니다.

     

    2021.06.11 - [코딩스토리/리눅스] - 리눅스 사용자 계정 SUDO 권한 부여하기 - 오라클 리눅스8

     

    리눅스 사용자 계정 SUDO 권한 부여하기 - 오라클 리눅스8

    이번 시간에는 리눅스 사용자 계정에 SUDO 권한을 부여하는 방법에 대해서 살펴 보겠습니다. 사용자 계정을 추가하는 방법은 아래 포스트를 참고 부탁 드립니다. 2021.06.11 - [코딩스토리/리눅스] -

    technfin.tistory.com

     

    파이썬 프로그램 업로드

    파이썬 프로그램을 업로드 하기 위해서는 sFTP 방식으로 접속해서 올리는 것이 가장 일반적입니다. sFTP 프로그램은 FileZilla라는 무료 프로그램을 사용하면 편리합니다.

     

    파일질라를 이용해 sFTP로 프로그램 업로드 하기

    먼저 파일질라 프로그램을 이용해서 서버에 접속합니다.

     

    2021.12.02 - [코딩스토리/리눅스] - SSH Key를 이용해서 SFTP로 서버에 접속하기 - Filezilla sFTP 프로그램 이용

     

    SSH Key를 이용해서 SFTP로 서버에 접속하기 - Filezilla sFTP 프로그램 이용

    리눅스 서버를 이용하여 코인 자동매매 프로그램을 수행하려면 PC에서 작성한 파이썬 파일을 서버로 이동하는 작업이 필요하게 됩니다. 서버로 파일을 옮기는 방법은 다양하지만 파일질라(FileZi

    technfin.tistory.com

    반응형

     

    리모트 사이트(서버)에 python 폴더 아래에 trade_bot 폴더와 그 아래 module 폴더를 생성해 줍니다.

     

    monitoring 하는 프로그램을 예시로 올려 보겠습니다. 로컬 사이트(왼쪽)에서 파일을 찾아서 더블클릭하면 리모트 사이트(서버)로 업로드가 됩니다. 동일하게 모듈 폴더에 upbit.py 모듈도 업로드 합니다.

     

    프로그램 실행하기

    파이썬은 오라클 리눅스 8 패키지에 포함되어 있기 때문에 별도로 설치할 필요없이 실행만 하면 됩니다. 다만 파이썬에서 필요한 패키지가 없는 경우 에러가 나기 때문에 해당 패키지를 설치해 주어야 합니다.

     

    프로그램을 수행하기 전에  업비트에 허용 가능한 IP를 꼭 먼저 등록하시기를 바랍니다.

     

    Putty를 이용해 python 계정으로 로그인 합니다.

     

    2021.06.11 - [코딩스토리/리눅스] - 리눅스 SSH Key 추가하여 사용자로 로그인하기 - 오라클 리눅스8

     

    리눅스 SSH Key 추가하여 사용자로 로그인하기 - 오라클 리눅스8

    이번 시간에는 서버에 접속할 때 사용자 계정으로 직접 접속할 수 있도록 SSH Key의 Public Key를 추가하는 방법에 대해서 살펴 보겠습니다. PuTTYgen을 사용하여 SSH Key를 생성하는 방법은 아래 포스트

    technfin.tistory.com

     

    로그인 하여 해당 폴더로 이동하여 아래와 같이 프로그램을 수행해 봅니다.

     

    python monitoring.py

     

    No module named 'pandas' 라는 오류가 발생하네요. 해당 모듈을 설치해 보겠습니다. sudo 설정을 했다면 sudo를 이용해서 안하셨다면 root로 계정을 변경해서 설치를 진행합니다.

     

    sudo pip3 install pandas

     

    설치가 완료 되었으니 다시 실행해 보겠습니다.

     

    정상적으로 잘 수행됩니다. 혹시 다른 프로그램이 없다고 나오면 해당 프로그램도 pip3 install을 이용해 설치 후 진행하시면 될 것 같습니다.

     

    혹시 jwt 해석 관련 오류가 발생한다면 공통 모듈에 있는 아래 부분에 .decode('utf8')을 추가한 후 수행해 보시기 바랍니다.

    jwt_token = jwt.encode(payload, secret_key)
    jwt_token = jwt.encode(payload, secret_key).decode('utf8')

     

    이번 시간에는 리눅스에서 파이썬 프로그램을 수행하는 방법에 대해서 살펴 보았는데요. 앞으로 포스팅에서 스케쥴을 설정하는 방법 및 로그 쌓고 정리하는 방법 등에 대해서도 살펴보도록 하겠습니다.

     

    블로그를 구독하시면 소식을 조금 더 빨리 받아 보실 수 있습니다. 감사합니다.

    반응형