클라우드 기반의 리눅스 서버에 접근하여 작업하기 앞서, 리눅스 클라우드에 윈도우 파이썬 프로젝트 및 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를 완료했습니다!