적용 대상: .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
VM에 처음으로 연결할 때 호스트 키 불일치에 대한 경고 메시지가 표시 될 수 있습니다.
Linux VM에 연결하고 파일이 있는지 확인합니다. 명령을 사용하여 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/
.
옵션 2: 명령을 사용하여 /var/폴더에 직접 애플리케이션을 추출합니다sudo tar -xf buggyamb_v1.1.tar.gz -C /var/
.
buggyamb_v1.1 애플리케이션 파일을 추출하려면 두 옵션 중 하나를 선택합니다. 설정을 완료하려면 /var/buggyamb_v1.1 폴더로 압축을 풀거나 이동해야 합니다. 이 폴더는 새 ASP.NET Core 애플리케이션의 작업 디렉터리로 사용됩니다.
다음 단계
2.6부 - 두 ASP.NET Core 애플리케이션을 동시에 실행
Nginx 뒤에서 버그가 있는 ASP.NET Core 애플리케이션을 구성하고 실행합니다. 이러한 단계가 끝나면 Nginx 뒤에서 실행되는 두 개의 ASP.NET Core 애플리케이션이 있습니다.