Прочитать на английском

Поделиться через


Часть 2.5. Копирование и извлечение файлов из среды разработки в Linux

Область применения: .NET Core 2.1, .NET Core 3.1, .NET 5

В этой статье описывается копирование файлов с компьютера под управлением Windows на виртуальную машину Linux и извлечение файлов.

Предварительные требования

Эта часть не имеет необходимых компонентов.

Цель этой части

Вы узнаете, как скопировать файлы с компьютера Под управлением Windows на виртуальную машину Linux. Это будет полезно при развертывании приложения в Linux.

Хотя для этой части нет предварительных требований, идеальная настройка будет соответствовать рекомендациям из предыдущих частей. У вас должно быть следующее:

  • Nginx работает автоматически и настроен для прослушивания запросов, отправленных через порт 80
  • Nginx, настроенный как обратный прокси-сервер и маршрутизация входящих запросов в приложение ASP.NET Core, которое прослушивается через порт 5000
  • Приложение ASP.NET Core, настроенное для автоматического запуска после перезапуска сервера или при остановке или сбое процесса.
  • Локальный брандмауэр Linux, настроенный для разрешения трафика SSH и HTTP

Копирование файлов из Windows в Linux и наоборот

Существует несколько вариантов копирования файлов между Windows и Linux. Различные методы можно найти в нескольких хороших статьях, таких как этот. Ниже приведено несколько вариантов:

  • Общий доступ к сетевым папкам. Ознакомьтесь с протоколом SMB и Samba.
  • Передача файлов с помощью FTP. Одним из самых известных FTP-серверов в Linux является PureFTPd.
  • Безопасное копирование файлов через SSH. Для копирования по протоколу SSH можно использовать команду scp . Однако лучшее средство — pscp (включено в PuTTY).
  • Совместное использование данных с помощью программного обеспечения синхронизации. Программа синхронизации помогает создавать точки синхронизации как в Windows, так и в Linux, а затем синхронизировать их с помощью ключа шифрования.
  • Используйте общие папки, если Linux работает в качестве виртуальной машины в виртуальной машине. Несколько средств, таких как VirtualBox Oracle, помогают создавать виртуальные общие каталоги.

В этой части вы будете использовать pscp для передачи файлов из Windows в Linux.

Базовые параметры pscp

Pscp упрощает выполнение основных задач, таких как копирование файла в Linux. Это средство входит в состав PuTTY, поэтому оно должно быть установлено на компьютере под управлением Windows вместе с PuTTY. Если это не так, установите его сейчас.

Ниже приведен пример команды:

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>

Закрытый ключ — это тот же ключ PPK , который был преобразован из PEM-файла при попытке подключиться к виртуальной машине с помощью PuTTY. Если вы сделали это успешно, у вас уже должен быть этот файл. Если у вас нет PPK-файла , следуйте инструкциям из раздела "Подключение к PuTTY" и преобразуйте pem-файл в PPK.

Копирование файла в Linux и его извлечение в другую папку

Скачивание примера проекта

В этом руководстве вы скопируете тестовое приложение с именем BuggyAmb. Это приложение доступно в примере приложения Для отладки BuggyAmb. Мы рекомендуем использовать это пример приложения, так как следующие части используют это приложение для имитации проблем с высокой и низкой производительностью ЦП и сбоев в лабораториях устранения неполадок.

BuggyAmb — это просто багги ASP.NET приложение Razor Pages на основе Core 3.1. Это приложение было намеренно создано как приложение с ошибкой, которое будет использоваться в качестве ресурса обучения для устранения проблемных сценариев для приложения ASP.NET Core в Linux.

Файлы исходного кода можно найти в двоичных файлах ASP.NET Core для Linux. Это в .tar.gz формате, так как этот формат распространен в мире Linux. Вы также можете скачать buggyamb_v1.1 в формате .zip для Windows.

Копирование buggyamb_v1.1.tar.gz файла на виртуальную машину Linux

Откройте окно командной строки на компьютере под управлением Windows и перейдите в папку, в которой установлен PuTTY. Чтобы скопировать файл, выполните следующую команду:

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

Также выполните pscp команду после изменения, используя собственный закрытый ключ и пути соответствующим образом. На следующем снимка экрана показан успешный перенос файлов между Windows и виртуальной машиной Linux.

Снимок экрана: команда pscp.

Примечание

При первом подключении к виртуальной машине с помощью pscp команды может появиться предупреждение о несоответствии ключа узла.

Подключитесь к виртуальной машине Linux и проверьте, есть ли файл. Для этого воспользуйтесь командой ls.

Снимок экрана: команда ls.

Существуют другие методы копирования файлов между Linux и Windows. Но этот метод достаточно для этого руководства.

Используйте файл buggyamb_v1.1.tar.gz для создания второго приложения ASP.NET Core, работающего за Nginx. На этот раз это приложение будет настроено на использование имени узла для просмотра. Это же приложение будет использоваться в лабораториях устранения неполадок, составляющих этот учебник.

Примечание

Если у вас возникли трудности с копированием файла buggyamb_v1.1.tar.gz на компьютер Linux, вы можете просто скачать файл .tar.gz с виртуальной машины Linux с помощью этой простой wget команды:

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 . Затем скопируйте его в папку /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 одновременно

Настройте и запустите приложение buggy ASP.NET Core за Nginx. В конце этих действий у вас будет два ASP.NET основных приложений, работающих за Nginx.