Parte 2.5: Copiar y extraer archivos del entorno de desarrollo en Linux

Se aplica a:   .NET Core 2.1, .NET Core 3.1, .NET 5

En este artículo se presenta cómo copiar archivos de un equipo basado Windows en una máquina virtual Linux y extraer archivos.

Requisitos previos

Esta parte no tiene requisitos previos.

Objetivo de esta parte

Aprenderá a copiar archivos de un equipo basado Windows en una máquina virtual Linux (VM). Esto será útil al implementar la aplicación en Linux.

Aunque no hay requisitos previos para esta parte, la configuración ideal seguiría las instrucciones de las partes anteriores. Debe tener lo siguiente:

  • Nginx se ejecuta automáticamente y se configura para escuchar las solicitudes enviadas en el puerto 80
  • Nginx configurado como proxy inverso y enrutamiento de solicitudes entrantes a una aplicación ASP.NET Core que escucha en el puerto 5000
  • La ASP.NET Core que está configurada para iniciarse automáticamente después de reiniciar el servidor o cuando el proceso se detiene o se bloquea.
  • Firewall local de Linux configurado para permitir el tráfico SSH y HTTP

Copiar archivos de Windows a Linux y viceversa

Hay varias opciones para copiar archivos entre Windows y Linux. Puede encontrar los diferentes métodos en varios artículos buenos, como este. Estas son algunas opciones:

  • Compartir carpetas de red. Consulte protocolo SMB y Samba.
  • Transferir archivos mediante FTP. Uno de los servidores FTP más conocidos en Linux es PureFTPd.
  • Copie los archivos de forma segura a través de SSH. Puede usar el comando scp para copiar a través de SSH. Sin embargo, una mejor herramienta es pscp (incluida con PuTTY).
  • Compartir datos mediante el software de sincronización. Un programa de sincronización le ayuda a crear puntos de sincronización en Windows y Linux y, a continuación, sincronizarlo mediante una clave de cifrado.
  • Use carpetas compartidas si Linux se ejecuta como una máquina virtual en la máquina virtual. Varias herramientas, como VirtualBoxde Oracle, le ayudan a crear directorios compartidos virtuales.

En esta parte, usará pscp para transferir archivos de Windows a Linux.

Parámetros básicos de pscp

Pscp facilita la realización de tareas básicas, como copiar un archivo en Linux. Esta herramienta se incluye con PuTTY,por lo que debe instalarse en el equipo basado Windows junto con PuTTY. Si no es así, instáleslo ahora.

Este es un comando de ejemplo:

pscp -i <private key path> <local file to upload> user@host:<Linux path to save>

Por ejemplo, para copiar el c:\web\publish.zip en el directorio principal del usuario en Linux, use este comando:

pscp -i d:\secure\myprivatekey.ppk c:\web\publish.zip <UserName>@buggyamb:<Linux path to save>

La clave privada es la misma clave .ppk que se convirtió de un archivo .pem cuando intentó conectarse a la máquina virtual mediante PuTTY. Si lo ha hecho correctamente, ya debería tener este archivo. Si no tiene el archivo .ppk, siga las instrucciones de la sección "Conectar con PuTTY" y convierta el archivo .pem en .ppk.

Copiar un archivo en Linux y extraerlo a otra carpeta

Descargar un proyecto de ejemplo

Para este tutorial, copiará una aplicación de prueba denominada BuggyAmb. Esta aplicación está disponible en la aplicación de ejemplo de depuración De BuggyAmb. Se recomienda usar esta aplicación de ejemplo porque las siguientes partes usan esta aplicación para simular problemas de alto y bajo rendimiento de la CPU y problemas de bloqueo en los laboratorios de solución de problemas.

BuggyAmb es simplemente un buggy ASP.NET Core aplicación de páginas de hoja de seguridad basada en 3.1. Esta aplicación se creó intencionadamente como una aplicación con errores para usarse como recurso de aprendizaje para solucionar escenarios problemáticos para una aplicación ASP.NET Core linux.

Puede encontrar los archivos de código fuente en ASP.NET Core archivos binarios para Linux. Esto está en formato .tar.gz porque ese formato es común en el mundo linux. También puede descargar el archivo buggyamb_v1.1 en .zip formato de Windows.

Copiar buggyamb_v1.1.tar.gz en una máquina virtual linux

Abra una ventana del símbolo del sistema en Windows equipo basado en el sistema y vaya a la carpeta en la que está instalado PuTTY. Para copiar el archivo, ejecute el siguiente comando:

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

Ejecute también el pscp comando después de modificarlo mediante su propia clave privada y rutas de acceso según corresponda. La siguiente captura de pantalla muestra una transferencia de archivos correcta entre Windows y la máquina virtual linux.

Captura de pantalla del comando pscp.

Nota

Cuando se conecta a la máquina virtual por primera vez mediante el comando, es posible que vea un mensaje de advertencia sobre un error de coincidencia pscp de clave de host.

Conectar a la máquina virtual linux y compruebe si el archivo está ahí. Para ello, use el ls comando.

Captura de pantalla del comando ls.

Existen otros métodos para copiar archivos entre Linux y Windows. Pero este método es suficiente para este tutorial.

Use el archivo buggyamb_v1.1.tar.gz para crear una segunda aplicación ASP.NET Core que se ejecute detrás de Nginx. Esta vez, esta aplicación se configurará para usar un nombre de host para examinarla. La misma aplicación se usará en los laboratorios de solución de problemas que componen este tutorial.

Nota

Si tiene dificultades para copiar el archivo buggyamb_v1.1.tar.gz en su equipo Linux, simplemente puede descargar el archivo .tar.gz de la vm de Linux mediante este sencillo wget comando:

wget https://buggyambfiles.blob.core.windows.net/bin/buggyamb_v1.1.tar.gz

Extraer los archivos y copiarlos en la carpeta /var/.

Buggyamb_v1.1.tar.gz contiene todo lo que necesita para ejecutar la aplicación con errores. Al igual que lo hizo con la primera aplicación ASP.NET Core, siga los mismos pasos para configurar esta aplicación para que se ejecute siempre detrás de Nginx.

Extraiga el archivo .tar.gz y cópielo en la carpeta /var. Hay dos maneras sencillas de lograr esto:

  • Opción 1: Extraer el archivo tar.gz al directorio actual ejecutando tar -xf filename.tar.gz . A continuación, copie la carpeta extraída en la carpeta /var.
  • Opción 2: Extraer el archivo tar.gz directamente en el directorio /var.

Opción 1: Ejecutar tar -xf buggyamb_v1.1.tar.gz para crear la carpeta buggyamb_v1.1. A continuación, cópielo en la carpeta /var mediante el sudo cp -a buggyamb_v1.1 /var/ comando.

Captura de pantalla del comando sudo cp.

Opción 2: Extraer la aplicación directamente a la carpeta /var/ mediante el sudo tar -xf buggyamb_v1.1.tar.gz -C /var/ comando.

Captura de pantalla del comando sudo tar.

Elija cualquiera de las dos opciones para extraer los buggyamb_v1.1 de la aplicación. Estos deben extraerse o moverse a la carpeta /var/buggyamb_v1.1 para completar la instalación. Esta carpeta se usará como directorio de trabajo para la nueva ASP.NET Core aplicación.

Siguientes pasos

Parte 2.6: ejecutar dos aplicaciones ASP.NET Core simultáneamente

Configure y ejecute la aplicación de ASP.NET Core detrás de Nginx. Al final de estos pasos, tendrá dos aplicaciones ASP.NET Core detrás de Nginx.