Часть 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 — это просто приложение Razor Pages на основе ASP.NET 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
команды может появиться предупреждающее сообщение о несоответствии ключа узла.
Подключитесь к виртуальной машине Linux и проверка, есть ли файл. Это можно сделать с помощью 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/
команды .
Вариант 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 приложений одновременно
Настройте и запустите приложение ASP.NET Core ошибок за Nginx. В конце этих шагов вы получите два ASP.NET Core приложения, работающие за Nginx.