클라우드 기반의 리눅스 서버에 접근하여 작업하기 앞서, 리눅스 클라우드에 윈도우 파이썬 프로젝트 및 MongoDB 등 데이터베이스 옮기기
팀원이 이미 가지고 있던 리눅스 서버를 테스트용으로 임시로 사용하자고 했다!ssh key 를 만들고
FileZilla도 설치한 후,
우분투 서버에 원격으로 접속했습니다!
같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않기 위해, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경
출처 : 파이썬 공식 용어집- 가상환경
우선 패키지의 버전이 다르면 프로젝트의 실행이 불가하다는 전제가 있습니다. 한 프로젝트에서 쓰는 패키지의 수는 다양하고, 서로 다른 프로젝트에서 요구하는 패키지의 목록이나 버전이 다를 수 있습니다.
이렇게 요구사항이 다른 두 프로젝트를 한 컴퓨터에서 진행해야하는 상황에서 각 프로젝트마다 가상환경을 만들고 그 안에 필요한 패키지를 설치해주면 필요한 버전이 다르거나 두 패키지가 충돌을 일으키는 등의 문제 없이 관리를 할 수 있습니다.
즉 물리적인 하나의 큰 시스템 공간을 논리적으로 나누어서, 편리함을 얻을 수 있습니다!
sudo apt install python3
sudo apt install python3-venv
cd (프로젝트 경로)
python3 -m venv venv
source venv/bin/activate
이외에 필요한 패키지도 설치해줍니다.
pip install pytube
pip install python-dotenv
pip install pymongo
먼저 vim 을 설치해줍니다.
sudo apt-get install vim
이제 이미 윈도우 파이참 환경에서 만들어둔 프로젝트의 파일을 vim 에디터를 이용해서 복사, 붙여넣기를 해보겠습니다.
app.py
파일의 내용을 전체 선택(Ctrl+A)하고 복사(Ctrl+C)합니다.app.py
파일을 생성하거나 엽니다:vim app.py
i
를 누릅니다.:wq
를 입력하여 파일을 저장하고 Vim을 종료합니다.vim 으로 복사 붙여넣기를 하기엔 한계가 있으므로
FileZilla SFTP를 이용해서 리눅스 서버에 파일을 옮겨주었습니다!
cat
명령어로 확인해보니 잘 옮겨진 것을 확인했습니다.
SQLite 데이터베이스 파일은 단순히 파일 시스템 내의 파일이기 때문에, 윈도우에서 리눅스로 이동시키는 것은 파일을 복사하는 것과 같습니다. FileZilla를 이용한 SFTP를 활용하면 이 과정을 쉽게 할 수 있습니다. FileZilla에서 연결을 설정한 후에, 윈도우 시스템에서 해당 SQLite 데이터베이스 파일(.db)을 찾아서 리눅스 시스템의 원하는 위치로 드래그 앤 드롭하면 됩니다. 이 방법은 몽고DB와 달리 데이터베이스 서버에 연결하여 데이터를 전송하는 것이 아니라, 파일 전송을 통해 진행됩니다.
윈도우에서 리눅스로 mongoDB 데이터베이스를 export, import하는 과정입니다.
윈도우에서 mongoexport
명령어를 사용하여 컬렉션을 JSON 형식으로 내보냅니다.
mongoexport --db YougleDB --collection VideoCollection --out VideoCollection.json
내보낸 outputfile.json
파일을 리눅스 시스템으로 전송합니다. 이를 위해 SFTP 클라이언트인 FileZilla를 사용하거나, scp
명령어를 사용할 수 있습니다.
리눅스에서 mongoimport
명령어를 사용하여 JSON 파일을 MongoDB 데이터베이스로 가져옵니다:
mongoimport --db YougleDB --collection VideoCollection --file VideoCollection.json
mongoimport --db YougleDB --collection VideoCollection --file /path/to/Your/Yougle/VideoCollection.json --authenticationDatabase admin --username your_username --password your_password
이 명령어를 실행하기 전에, VideoCollection.json 파일을 리눅스 시스템에 옮겨두어야 하며, MongoDB 서비스가 실행 중이어야 합니다.
MongoDB 서비스가 실행 중인지 확인하려면 리눅스 터미널에서 다음 명령어를 사용할 수 있습니다.
sudo systemctl status mongod
만약 서비스가 실행되지 않고 있다면, 다음 명령어로 MongoDB 서비스를 시작할 수 있습니다.
sudo systemctl start mongod
서비스를 자동으로 시작하게 하려면
sudo systemctl enable mongod
이 명령들은 MongoDB 서비스의 상태를 확인하고, 필요에 따라 서비스를 시작하거나 시스템 부팅 시 자동으로 시작하도록 설정합니다.
mongoDB까지 import를 완료했습니다!