共用方式為


第 2.5 部分 - 將檔案從開發環境複製並擷取至 Linux

適用於: .NET Core 2.1、.NET Core 3.1、.NET 5

本文介紹如何將檔案從 Windows 計算機複製到 Linux 虛擬機,並擷取檔案。

必要條件

此部分沒有任何必要條件。

此部分的目標

您將瞭解如何將檔案從 Windows 計算機複製到 Linux 虛擬機, (VM) 。 當您將應用程式部署至Linux時,這會很有説明。

雖然此部分沒有必要條件,但理想的設定會遵循先前各部分的指引。 您應該具備下列專案:

  • Nginx 會自動執行,並設定為接聽埠 80 上傳送的要求
  • Nginx 設定為反向 Proxy,並將傳入要求路由傳送至 ASP.NET Core 應用程式,這是在埠 5000 上接聽
  • 設定為在伺服器重新啟動之後或進程停止或當機時自動啟動的 ASP.NET Core 應用程式。
  • 設定為允許 SSH 和 HTTP 流量的 Linux 本機防火牆

將檔案從 Windows 複製到 Linux,反之亦然

有數個選項可在 Windows 和 Linux 之間複製檔案。 您可以在數篇好的文章中找到不同的方法,例如 這篇。 以下是一些選項:

  • 共用網路資料夾。 請參閱 SMB 通訊協定Samba
  • 使用 FTP 傳輸檔案。 Linux 中最知名的 FTP 伺服器之一是 PureFTPd
  • 透過 SSH 安全地複製檔案。 您可以使用 scp 命令透過 SSH 複製。 不過,較佳的工具是 PuTTY) 隨附的 pscp (。
  • 使用同步軟體共享數據。 同步處理程式可協助您在 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 金鑰相同。 如果您已成功完成此動作,您應該已經有此檔案。 If you don't have the .ppk file, follow the instructions from the "Connecting with PuTTY" section, and convert your .pem file to .ppk.

將檔案複製到 Linux 並將它解壓縮到另一個資料夾

下載範例專案

在本教學課程中,您將複製名為 BuggyAmb 的測試應用程式。 此應用程式可在 BuggyAmb 偵錯範例應用程式上取得。 建議您使用此範例應用程式,因為下一個部分會使用此應用程式來模擬高低 CPU 效能問題,以及疑難解答實驗室中的當機問題。

BuggyAmb 只是以 3.1 為基礎的 Razor Pages 應用程式 ASP.NET Core 錯誤。 此應用程式是刻意建立為錯誤應用程式,用來作為學習資源,以針對Linux上 ASP.NET Core 應用程式的有問題案例進行疑難解答。

您可以在 Linux 的 ASP.NET Core 二進位檔中找到原始碼檔案。 這是 .tar.gz 格式,因為該格式在Linux世界中很常見。 您也可以下載 windows.zip格式buggyamb_v1.1

將buggyamb_v1.1.tar.gz檔案複製到Linux VM

在 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.gz 檔解壓縮至當前目錄 tar -xf filename.tar.gz。 然後,將解壓縮的資料夾複製到 /var 資料夾。
  • 選項 2:將 tar.gz 檔案直接解壓縮到 /var 目錄。

選項 1:執行 tar -xf buggyamb_v1.1.tar.gz 以建立 buggyamb_v1.1 資料夾。 然後,使用 sudo cp -a buggyamb_v1.1 /var/ 命令將它複製到 /var 資料夾。

sudo cp 命令的螢幕快照。

選項 2:使用 sudo tar -xf buggyamb_v1.1.tar.gz -C /var/ 命令直接將應用程式解壓縮至 /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 應用程式。