Home Windows PowerShell: Enviar archivos por FTP

PowerShell: Enviar archivos por FTP

by José Luis Sánchez Borque

En algunos proyectos me he encontrado con la necesidad sincronizar dos sistemas mediante el envío y recepción de archivos. Por ejemplo, logs de un sistema de control que se envían a un sistema remoto para procesarlos de alguna manera.

Existen muchas maneras y tecnologías, pero lo simple muchas veces es lo correcto….. En esta ocasión enviaré un fichero a un servidor remoto de ftp mediante el método WebClient.UploadFile Y WebClient.DownLoadFile,

Para enviar el archivo basta con ejecutar el siguiente código:

$client = New-Object System.Net.WebClient
$client.Credentials = New-Object System.Net.NetworkCredential("user", "password")
$client.UploadFile("ftp://192.168.1.180/datos.csv", "C:\carpeta.origen\datos.csv")

Los parámetros son más que evidentes y no requieren casi de explicación… Sube al servidor tfp://192.168.1.180 el archivo c:\carpeta.origen\datos.csv con el mismo nombre datos.csv ( podría ser otro nombre sin problemas).  Los datos usery password son lo que indican claramente.

Si me conecto de forma manual al servidor ftp podemos ver que el archivo ha subido.

PS C:\nmap\ftp> ftp
ftp> open 192.168.1.180
Conectado a 192.168.1.180.
220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
Usuario (192.168.1.180:(none)): user
331 Please specify the password.
Contraseña:
230 Login successful.
ftp> ls datos.csv
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
datos.csv
226 Directory send OK.
ftp: 14 bytes recibidos en 0.00segundos 4.67a KB/s.

Para la descarga…. Pues igual de fácil:

$client = New-Object System.Net.WebClient
$client.Credentials = New-Object System.Net.NetworkCredential("user", "password")
$client.DownLoadFile("ftp://192.168.1.180/datos.csv", "C:\carpeta.destino\datos.csv")

Vemos que el fichero datos.csv se ha descargado en c:\carpeta.destino con el mismo nombre:

PS C:\carpeta.destino> ls

Directorio: C:\carpeta.destino

Mode LastWriteTime Length Name
---- ------------- ------ ----

-a---- 17/07/2021 9:33 35141 datos.csv

You may also like

Leave a Comment