다음을 통해 공유


2.5부 - 개발 환경에서 Linux로 파일 복사 및 추출

적용 대상: .NET Core 2.1, .NET Core 3.1, .NET 5

이 문서에서는 Windows 기반 컴퓨터에서 Linux 가상 머신으로 파일을 복사하고 파일을 추출하는 방법을 소개합니다.

필수 조건

이 부분에는 필수 구성 요소가 없습니다.

이 부분의 목표

Windows 기반 컴퓨터에서 Linux VM(가상 머신)으로 파일을 복사하는 방법을 알아봅니다. 이는 Linux에 애플리케이션을 배포할 때 유용합니다.

이 부분에 대한 필수 구성 요소는 없지만 이상적인 설정은 이전 부분의 지침을 따릅니다. 다음 항목이 있어야 합니다.

  • Nginx가 자동으로 실행되고 포트 80에서 전송된 요청을 수신 대기하도록 구성됨
  • Nginx는 역방향 프록시로 구성되고 들어오는 요청을 포트 5000에서 수신 대기 중인 ASP.NET Core 애플리케이션으로 라우팅합니다.
  • 서버를 다시 시작한 후 또는 프로세스가 중지되거나 충돌할 때 자동으로 시작되도록 구성된 ASP.NET Core 애플리케이션입니다.
  • SSH 및 HTTP 트래픽을 허용하도록 구성된 Linux 로컬 방화벽

Windows에서 Linux로 파일 복사 및 그 반대의 경우도 마찬가지

Windows와 Linux 간에 파일을 복사하는 몇 가지 옵션이 있습니다. 이 문서와 같은 몇 가지 좋은 문서에서 다양한 메서드를 찾을 수 있습니다. 다음은 몇 가지 옵션입니다.

  • 네트워크 폴더를 공유합니다. SMB 프로토콜Samba를 참조하세요.
  • FTP를 사용하여 파일을 전송합니다. Linux에서 가장 잘 알려진 FTP 서버 중 하나는 PureFTPd입니다.
  • SSH를 통해 파일을 안전하게 복사합니다. scp 명령을 사용하여 SSH를 통해 복사할 수 있습니다. 그러나 더 나은 도구는 pscp(PuTTY에 포함됨)입니다.
  • 동기화 소프트웨어를 사용하여 데이터를 공유합니다. 동기화 프로그램을 사용하면 Windows와 Linux 모두에서 동기화 지점을 만든 다음 암호화 키를 사용하여 동기화할 수 있습니다.
  • Linux가 VM에서 VM으로 실행되는 경우 공유 폴더를 사용합니다. Oracle의 VirtualBox와 같은 여러 도구는 가상 공유 디렉터리를 만드는 데 도움이 됩니다.

이 부분에서는 pscp를 사용하여 Windows에서 Linux로 파일을 전송합니다.

기본 pscp 매개 변수

Pscp 을 사용하면 Linux에 파일을 복사하는 등의 기본 작업을 쉽게 수행할 수 있습니다. 이 도구는 PuTTY에 포함되어 있으므로 PuTTY와 함께 Windows 기반 컴퓨터에 설치해야 합니다. 그렇지 않은 경우 지금 설치합니다.

예시 명령은 다음과 같습니다.

pscp -i <private key path> <local file to upload> user@host:<Linux path to save>

예를 들어 c:\web\publish.zip 파일을 Linux의 사용자 홈 디렉터리에 복사하려면 다음 명령을 사용합니다.

pscp -i d:\secure\myprivatekey.ppk c:\web\publish.zip <UserName>@buggyamb:<Linux path to save>

프라이빗 키는 PuTTY를 사용하여 VM에 연결하려고 할 때 .pem 파일에서 변환된 것과 동일한 .ppk 키입니다. 이 작업을 성공적으로 수행했으면 이 파일이 이미 있어야 합니다. .ppk 파일이 없는 경우 "PuTTY로 연결" 섹션의 지침에 따라 .pem 파일을 .ppk변환합니다.

Linux에 파일 복사 및 다른 폴더로 추출

샘플 프로젝트 다운로드

이 자습서에서는 BuggyAmb라는 테스트 애플리케이션을 복사합니다. 이 애플리케이션은 BuggyAmb 디버깅 샘플 애플리케이션에서 사용할 수 있습니다. 다음 부분에서는 이 애플리케이션을 사용하여 문제 해결 랩에서 높은 CPU 성능 문제 및 크래시 문제를 시뮬레이트하기 때문에 이 샘플 애플리케이션을 사용하는 것이 좋습니다.

BuggyAmb는 단순히 Core 3.1 기반 Razor Pages 애플리케이션에 ASP.NET 버그가 있습니다. 이 애플리케이션은 Linux의 ASP.NET Core 애플리케이션에 문제가 있는 시나리오를 해결하기 위해 학습 리소스로 사용할 버그가 있는 애플리케이션으로 의도적으로 만들어졌습니다.

Linux용 ASP.NET Core 이진 파일에서 소스 코드 파일을 찾을 수 있습니다. 이 형식은 Linux 환경에서 일반적이므로 .tar.gz 형식입니다. Windows용 .zip 형식으로 buggyamb_v1.1을 다운로드할 수도 있습니다.

Linux VM에 buggyamb_v1.1.tar.gz 파일 복사

Windows 기반 컴퓨터에서 명령 프롬프트 창을 열고 PuTTY가 설치된 폴더로 이동합니다. 파일을 복사하려면 다음 명령을 실행합니다.

pscp -i d:\secure\myprivatekey.ppk D:\Learn\Linux\buggyamb_v1.1.tar.gz <UserName>@buggyamb:/home/<UserName>

또한 사용자 고유의 pscp 프라이빗 키와 경로를 적절하게 사용하여 수정한 후 명령을 실행합니다. 다음 스크린샷은 Windows와 Linux VM 간의 성공적인 파일 전송을 보여 줍니다.

pscp 명령의 스크린샷

참고 항목

명령을 사용하여 pscp VM에 처음으로 연결할 때 호스트 키 불일치에 대한 경고 메시지가 표시 될 수 있습니다.

Linux VM에 연결하고 파일이 있는지 확인합니다. 명령을 사용하여 ls 이 작업을 수행할 수 있습니다.

ls 명령의 스크린샷.

Linux와 Windows 간에 파일을 복사하는 다른 방법이 있습니다. 그러나 이 방법은 이 자습서에 충분합니다.

buggyamb_v1.1.tar.gz 파일을 사용하여 Nginx 뒤에서 실행되는 두 번째 ASP.NET Core 애플리케이션을 만듭니다. 이번에는 이 애플리케이션이 호스트 이름을 사용하여 찾아보도록 구성됩니다. 이 자습서를 구성하는 문제 해결 랩에서 동일한 애플리케이션이 사용됩니다.

참고 항목

buggyamb_v1.1.tar.gz 파일을 Linux 컴퓨터에 복사하는 데 어려움이 있는 경우 이 간단한 wget 명령을 사용하여 Linux VM에서 .tar.gz 파일을 다운로드하기만 하면 됩니다.

wget https://buggyambfiles.blob.core.windows.net/bin/buggyamb_v1.1.tar.gz

파일 추출 및 /var/폴더에 복사

Buggyamb_v1.1.tar.gz 버그 애플리케이션을 실행하는 데 필요한 모든 것을 포함합니다. 첫 번째 ASP.NET Core 애플리케이션에서 수행한 것처럼 동일한 단계에 따라 항상 Nginx 뒤에서 실행되도록 이 애플리케이션을 구성합니다.

.tar.gz 파일을 추출하고 /var 폴더에 복사합니다. 이 작업을 수행하는 간단한 방법에는 두 가지가 있습니다.

  • 옵션 1: 실행tar -xf filename.tar.gz하여 tar.gz 파일을 현재 디렉터리로 추출합니다. 그런 다음 추출된 폴더를 /var 폴더에 복사합니다.
  • 옵션 2: tar.gz 파일을 /var 디렉터리에 직접 추출합니다.

옵션 1: 실행 tar -xf buggyamb_v1.1.tar.gz 하여 buggyamb_v1.1 폴더를 만듭니다. 그런 다음 명령을 사용하여 /var 폴더에 복사합니다sudo cp -a buggyamb_v1.1 /var/.

sudo cp 명령의 스크린샷

옵션 2: 명령을 사용하여 /var/폴더에 직접 애플리케이션을 추출합니다sudo tar -xf buggyamb_v1.1.tar.gz -C /var/.

sudo tar 명령의 스크린샷.

buggyamb_v1.1 애플리케이션 파일을 추출하려면 두 옵션 중 하나를 선택합니다. 설정을 완료하려면 /var/buggyamb_v1.1 폴더로 압축을 풀거나 이동해야 합니다. 이 폴더는 새 ASP.NET Core 애플리케이션의 작업 디렉터리로 사용됩니다.

다음 단계

2.6부 - 두 ASP.NET Core 애플리케이션을 동시에 실행

Nginx 뒤에서 버그가 있는 ASP.NET Core 애플리케이션을 구성하고 실행합니다. 이러한 단계가 끝나면 Nginx 뒤에서 실행되는 두 개의 ASP.NET Core 애플리케이션이 있습니다.