次の方法で共有


パート 2.5 - 開発環境から Linux へのファイルのコピーと抽出

適用対象: .NET Core 2.1、.NET Core 3.1、.NET 5

この記事では、Windows ベースのコンピューターから Linux 仮想マシンにファイルをコピーし、ファイルを抽出する方法について説明します。

前提条件

この部分には前提条件はありません。

このパートの目標

Windows ベースのコンピューターから Linux 仮想マシン (VM) にファイルをコピーする方法について説明します。 これは、アプリケーションを Linux にデプロイするときに役立ちます。

このパートの前提条件はありませんが、理想的なセットアップは前のパートのガイダンスに従います。 次のものが必要です。

  • Nginx が自動的に実行され、ポート 80 で送信された要求をリッスンするように構成されている
  • リバース プロキシとして構成され、受信要求をポート 5000 でリッスンしている ASP.NET Core アプリケーションにルーティングする Nginx
  • サーバーの再起動後、またはプロセスが停止またはクラッシュしたときに自動的に起動するように構成された ASP.NET Core アプリケーション。
  • SSH トラフィックと HTTP トラフィックを許可するように構成された Linux ローカル ファイアウォール

Windows から Linux に、またはその逆にファイルをコピーする

Windows と Linux の間でファイルをコピーするには、いくつかのオプションがあります。 この記事など、いくつかの優れた記事でさまざまな方法見つけることができます。 次のことをお試しください。

  • ネットワーク フォルダーを共有します。 SMB プロトコルおよび Samba を参照してください。
  • FTP を使用してファイルを転送します。 Linux で最もよく知られている FTP サーバーの 1 つは、 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にあります。 Linux の世界では一般的な形式であるため、これは .tar.gz 形式です。 buggyamb_v1.1を Windows 用.zip形式でダウンロードすることもできます。

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 コマンドのスクリーンショット。

Note

pscp コマンドを使用して VM に初めて接続すると、ホスト キーの不一致に関する警告メッセージが表示されることがあります。

Linux VM に接続し、ファイルが存在するかどうかを確認します。 このような場合には、ls コマンドを使用します。

ls コマンドのスクリーンショット。

Linux と Windows の間でファイルをコピーする方法は他にもあります。 ただし、このチュートリアルでは、この方法で十分です。

buggyamb_v1.1.tar.gz ファイルを使用して、Nginx の背後で実行される 2 つ目の ASP.NET Core アプリケーションを作成します。 今回は、このアプリケーションはホスト名を使用して参照するように構成されます。 このチュートリアルを構成するトラブルシューティング ラボでも、同じアプリケーションが使用されます。

Note

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 フォルダーにコピーします。 これを行うには、次の 2 つの簡単な方法があります。

  • オプション 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 フォルダーにコピーします。

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 - 2 つの ASP.NET Core アプリケーションを同時に実行する

Nginx の背後にあるバグのある ASP.NET Core アプリケーションを構成して実行します。 これらの手順の最後には、Nginx の背後で 2 つの ASP.NET Core アプリケーションが実行されます。