適用於: .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 複製。 不過,更好的工具是 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 只是以 Buggy ASP.NET Core 3.1 為基礎的 Razor Pages 應用程式。 此應用程式是刻意建立為 Buggy 應用程式,以作為學習資源,針對 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
命令連線到 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包含執行 Buggy 應用程式所需的所有專案。 就像您第一個 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 資料夾。 然後,使用 sudo cp -a buggyamb_v1.1 /var/
命令將它複製到 /var 資料夾。
選項 2:使用 sudo tar -xf buggyamb_v1.1.tar.gz -C /var/
命令,將應用程式直接擷取至 /var/ 資料夾。
選擇任一選項,以擷 取 buggyamb_v1.1 應用程式檔。 這些應該擷取或移至 /var/buggyamb_v1.1 資料夾,以完成設定。 此資料夾將作為新 ASP.NET Core 應用程式的工作目錄。
下一步
第 2.6 部分 - 同時執行兩個 ASP.NET Core 應用程式
設定並執行 Nginx 後方的 Buggy ASP.NET Core 應用程式。 在這些步驟結束時,您將有兩個在 Nginx 後方執行的 ASP.NET Core 應用程式。