Ene 192015
 

Este artículo es una receta rápida para incluir dentro de un script bash la transferencia de un fichero mediante protocolo FTP.

Todavía hay muchos proveedores de servicio de hosting que ofrecen FTP como el mecanismo para actualizar o recuperar los contenidos del servidor. Trabajar con FTP no es un problema, porque hay muchos clientes interactivos que implementan este protocolo, incluyendo aplicaciones open source como FileZilla.

Pero si queremos automatizar el proceso, por ejemplo, para implementar un procedimiento de copia de seguridad diaria, debemos ser capaces de realizar la transferencia desde un programa, o bien desde un shell script.

Para subir al servidor un fichero desde un script bash, podemos utilizar las siguientes sentencias:

#!/bin/bash
HOST='mi-sitio-ftp.com'
USUARIO='miusuarioftp'
PASSWD='claveftp'
FICHERO='mifichero.dat';

ftp -n -v $HOST << SENTENCIASFTP
user $USUARIO $PASSWD
ascii
prompt
cd upload
put $FICHERO
bye
SENTENCIASFTP

La opción “-n” inhibe el uso del fichero .netrc que podría existir en el directorio de login

La opción “-v” solicita que se imprima las repuestas recibidas del servidor al que nos conectamos, así como un informe con las estadísticas de la transferencia.

A continuación están las sentencias que se envían al servidor. En este ejemplo, hemos incluido los comandos:

  • ascii: Pone la conexión en modo ASCII. Esto es útil cuando se transfieren ficheros de texto entre un sistema Windows y un sistema Linux, porque realiza automáticamente la conversión de los terminadores de línea Windows (CRLF) a terminadores Linux (LF) y viceversa.
  • prompt: Inhabilita el prompting interactivo, cuando se utilizan los comandos mget o mput para transferir varios ficheros

 Publicado por en 7:31 pm

 Deja un comentario

(requerido)

(requerido)