[Linux] 윈도우에서 Linux 가상서버 접속, FileZilla 업로드

seunghyun·2024년 1월 13일
1

Yougle

목록 보기
15/15

✔ 요구사항

클라우드 기반의 리눅스 서버에 접근하여 작업하기 앞서, 리눅스 클라우드에 윈도우 파이썬 프로젝트 및 MongoDB 등 데이터베이스 옮기기

사용 도구

  • Ubuntu
  • vim

✔ 결과 화면


✔ Linux 접속

팀원이 이미 가지고 있던 리눅스 서버를 테스트용으로 임시로 사용하자고 했다!ssh key 를 만들고FileZilla도 설치한 후,우분투 서버에 원격으로 접속했습니다!


✔ Linux 설정

venv 란?

같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않기 위해, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경
출처 : 파이썬 공식 용어집- 가상환경

우선 패키지의 버전이 다르면 프로젝트의 실행이 불가하다는 전제가 있습니다. 한 프로젝트에서 쓰는 패키지의 수는 다양하고, 서로 다른 프로젝트에서 요구하는 패키지의 목록이나 버전이 다를 수 있습니다.

이렇게 요구사항이 다른 두 프로젝트를 한 컴퓨터에서 진행해야하는 상황에서 각 프로젝트마다 가상환경을 만들고 그 안에 필요한 패키지를 설치해주면 필요한 버전이 다르거나 두 패키지가 충돌을 일으키는 등의 문제 없이 관리를 할 수 있습니다.

물리적인 하나의 큰 시스템 공간을 논리적으로 나누어서, 편리함을 얻을 수 있습니다!

venv 설치, 만들기

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 사용해서 파일 생성

먼저 vim 을 설치해줍니다.

sudo apt-get install vim

이제 이미 윈도우 파이참 환경에서 만들어둔 프로젝트의 파일을 vim 에디터를 이용해서 복사, 붙여넣기를 해보겠습니다.

  1. 윈도우에서 app.py 파일의 내용을 전체 선택(Ctrl+A)하고 복사(Ctrl+C)합니다.
  2. 리눅스 시스템으로 전환합니다.
  3. Vim을 열고 app.py 파일을 생성하거나 엽니다:
    vim app.py
  4. Vim의 명령 모드에서 복사한 내용을 붙여넣기 하려면, 먼저 Vim을 삽입 모드로 전환합니다. 이를 위해 i를 누릅니다.
  5. 리눅스에서 터미널의 붙여넣기 단축키(일반적으로 Shift+Insert 또는 마우스 오른쪽 클릭 후 'Paste' 선택)를 사용하여 내용을 Vim에 붙여넣습니다.
  6. 모든 내용을 붙여넣은 후에는 Esc 키를 눌러 삽입 모드를 종료하고, :wq를 입력하여 파일을 저장하고 Vim을 종료합니다.

✔ FileZilla SFTP 로 파일 업로드

vim 으로 복사 붙여넣기를 하기엔 한계가 있으므로
FileZilla SFTP를 이용해서 리눅스 서버에 파일을 옮겨주었습니다!

cat 명령어로 확인해보니 잘 옮겨진 것을 확인했습니다.

✔ 데이터베이스 업로드

SQLite

SQLite 데이터베이스 파일은 단순히 파일 시스템 내의 파일이기 때문에, 윈도우에서 리눅스로 이동시키는 것은 파일을 복사하는 것과 같습니다. FileZilla를 이용한 SFTP를 활용하면 이 과정을 쉽게 할 수 있습니다. FileZilla에서 연결을 설정한 후에, 윈도우 시스템에서 해당 SQLite 데이터베이스 파일(.db)을 찾아서 리눅스 시스템의 원하는 위치로 드래그 앤 드롭하면 됩니다. 이 방법은 몽고DB와 달리 데이터베이스 서버에 연결하여 데이터를 전송하는 것이 아니라, 파일 전송을 통해 진행됩니다.

mongoDB

윈도우에서 리눅스로 mongoDB 데이터베이스를 export, import하는 과정입니다.

  1. 윈도우에서 mongoexport 명령어를 사용하여 컬렉션을 JSON 형식으로 내보냅니다.

    mongoexport --db YougleDB --collection VideoCollection --out VideoCollection.json
  2. 내보낸 outputfile.json 파일을 리눅스 시스템으로 전송합니다. 이를 위해 SFTP 클라이언트인 FileZilla를 사용하거나, scp 명령어를 사용할 수 있습니다.

  3. 리눅스에서 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를 완료했습니다!


🔗 Reference

0개의 댓글