1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (¡Se el primero en puntuarlo!)
Cargando…

Como automatizar el FTP de línea de comando

Hace bastante tiempo escribí un post sobre el FTP de línea de comando. Ahora lo vuelvo a hacer pero refiriéndome a su automatización.

Los archivos de proceso por lotes (batch files) son muy viejos pero sin embargo son muy útiles para ayudar a automatizar tareas comunes como por ejemplo cargar archivos a un servidor FTP remoto.

Para esto lo primero que hay que hacer es crear un archivo al que llamaremos subirporftp.cmd en el directorio de Windows o adentro de algún directorio incluido en la variable de entorno path de Windows. Se puede usar el comando “path” para saber cuál es el valor actual.

Adentro del batch file hay que copiar lo siguiente:

@echo off
echo MyUserName > comandos.dat
echo MyPassword >> comandos.dat
echo bin >> comandos.dat
echo put %1 >> comandos.dat
echo quit>> comandos.dat
ftp -n -s:comandos.dat SERVERNAME.COM
del comandos.dat

Obviamente que tendrás que reemplazar el MyUserName, mi Contraseña y el SERVERNAME.COM por los valores correctos de tu servidor FTP. Lo que este archivo por lotes hace es automatizar la utilidad de FTP usando la opción -s para la utilidad de la línea de comandos. En sí, el archivo que se genera es un archivo de respuestas.

El archivo batch utiliza el comando “”echo” para enviar mensajes de texto al servidor de FTP como si lo hubieras escrito. En el medio del archivo se pueden agregar comandos adicionales, por ejemplo un comando de  cambio de directorio:

echo cd /pathname/ >> comandos.dat

Para llamar a este archivo batch, lo harás utilizando el nombre de subirporftp.cmd que le diste y pasar el nombre de un archivo como un parámetro. No es necesario escribir la extensión .cmd para hacer que el archivo funcione:

> subirporftp FileToUpload.zip
Connected to ftp.myserver.com.
220 Microsoft FTP Service
ftp> user myusername
331 Password required for myusername.
230 User myusername logged in.
ftp> bin
200 Type set to I.
ftp> put FileToUpload.zip
200 PORT command successful.
150 Opening BINARY mode data connection for FileToUpload.zip
226 Transfer complete.
ftp: 106 bytes sent in 0.01Seconds 7.07Kbytes/sec.
ftp> quit

Como todo, puede ser que tengas algunos problemitas que dependerán del servidor FTP y los comandos que se requiere ingresar para lograr el objetivo. En mi caso, descubrí que si es un servidor FTP de Microsoft hay que poner la palabra user antes del username, mientras que en un Linux no era necesaria.

Happy FTPing!


1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (¡Se el primero en puntuarlo!)
Cargando…

One Response