¡Ya estamos en Twitter!

Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad

Usando el módulo Net::FTP

por Uriel Lizama

Introducción

Muchas veces nos vemos en la necesidad de conectarnos a nuestro sitio a través de FTP para realizar ciertas acciones, comunmente mantenimiento en nuestro servidor.

Con este tutorial vamo a aprender a conectarnos con perl por medio de FTP usando el módulo Net::FTP.

Conectarse al servidor

En primer lugar debemos de abrir una conexión con el servidor a través de FTP para realizar todas nuestras acciones. Esto es sumamente sencillo y lo hacemos de la siguiente manera:

#!/usr/bin/perl -w

use strict;
use Net::FTP;

my $username = "miLogin";
my $pwd = "miPwd";

my $ftp = Net::FTP->new("ftp.misitio.com") or die("No se pudo conectar al servidor: $!");
$ftp->login($username,$pwd) or die("Login incorrecto: $!");
#ACCIONES QUE QUEREMOS EJECUTAR EN EL SERVIDOR
$ftp->quit or die("No se puedo desconectar del servidor: $!");

Como vemos conectarnos a un servidor por medio de FTP es realmente sencillo. Pero veamos las lineas más importantes para comprender como nos estamos conectando:

my $ftp = Net::FTP->new("ftp.misitio.com") or die("No se pudo conectar al servidor: $!");

Con esta linea estamos creando un nuevo objeto llamdo "$ftp", llamamos la función "new" del módulo y envíamos la ruta del servidor.

$ftp->login($username,$pwd) or die("Login incorrecto: $!");

Mandamos los datos para accesar, lo que es el "username" y el "password", después de esta linea estaremos conectados al servidor y podremos usar cualquiera de las funciones que veremos más adelante.

$ftp->quit or die("No se puedo desconectar del servidor: $!");

Esta linea es muy importante pues nos desconecta del servidor.


En la siguiente sección veremos que funciones podemos usar para realizar diversas acciones en nuestro servidor.

Acciones con FTP

Ahora veremos que acciones podemos realizar en nuestro servidor con este módulo de perl.

NOTA: Recuerda que puedes usar estas funciones después de haberte conectado a tu servidor. Y recuerda que debes de desconectarte después de realizar todas las acciones deseadas en el servidor.

CAMBIAR DE DIRECTORIO

La gran diferencia que hay entre leer un archivo por FTP que hacerlo de manera local, es que primero debemos de encontarnos en el directorio donde se encuentra el archivo que queremos leer, o el directorio donde queremos salvar un archivo.

Esto lo hacemos de manera sencilla con la siguiente linea:

$ftp->cwd("dir/");

RENOMBRAR UN ARCHIVO

Si queremos renombrar un archivo, primero debemos de cambiarnos al directorio donde esta el mismo y después usamos esta linea:

$ftp->rename("nombre_viejo.txt","nombre_nuevo.txt");

ELIMINAR UN ARCHIVO

Después de cambiar el directorio usamos la siguiente linea:

$ftp->delete("miarchivo");

CREAR UN DIRECTORIO

Para crear un nuevo directorio usamos:

$ftp->mkdir("directorio");

ELIMINAR UN DIRECTORIO

Para eliminar un directorio usamos:

$ftp->rmdir("directorio");

LEER UNA LISTA DE ARCHIVOS

Si queremos leer una lista de archivos que hay dentro de un directorio incluyendo subdirectorios ponemos la siguiente linea que llenará un array con los nombres de archivos del directorio deseado:

my @archivos = $ftp->ls("directorio");

LEER UNA LISTA DE ARCHIVOS DETALLADA

Si queremos leer un listado de archivos detallado podemos hacer de esta manera:

my @archivos = $ftp->dir("directorio");

DESCARGAR UN ARCHIVO

Si queremos leer un archivo del servidor y salvarlo, primero debemos de cambiar al directorio donde se encuentra nuestro archivo y usamos la siguiente linea, donde envíamos primero el nombre del archivo que queremos descargar seguido por él nombre del archivo en donde queremos que se salve:

$ftp->get("archivo_remoto","archivo_local");

SUBIR UN ARCHIVO

Si queremos salvar un archivo en el servidor, primero debemos de cambiarnos al directorio donde queremos guardarlo, y luego usamos la siguiente linea que contiene el nombre del archivo local que queremos guardar, y el nombre del archivo remoto donde lo vamos a guardar.

$ftp->put("archivo_local","archivo_remoto");

ÚLTIMO ARCHIVO GUARDADO

Si queremos saber cual fue el último archivo guardado en el servidor, primer cambiamos de directorio y luego usamos:

my $ultimo_archivo $ftp->unique_name();

FECHA DE MODIFICADO

Si queremos saber cual fue la última fecha de modificación de un archivo, cambiamos de directorio y usamos:

my $ultima_modificacion = $ftp->mdtm("archivo");

TAMAÑO DEL ARCHIVO

Podemos saber el tamaño de un archivo en bytes usando la siguiente linea:

$ftp->size("archivo");

Funciones Avanzadas

Si estas guardando archivos de un sistema operativo Windows a un servidor en UNIX, debes de definir como quieres guardarlo en el servidor UNIX, pues estos pueden estar en "ASCII" o "binario". La diferencia entre ellos, es que en todos los archivos ASCII que pueden ser: archivos de texto, CGI's, etc. si importan las nuevas linea. En cambio en los binarios como las imagenes, esto no es de mayor importancia.

Para poder cambiar la manera en que guardas los archivos debes de usar cualquiera de las siguientes lineas:

$ftp->ascii(); #Para guardar un archivo ASCII
$ftp->binary(); #Para guardar un archivo binario

Últimas Notas

Para mayores detalles acerca de el módulo y otras funciones disponibles, pueden ver la documentación del mismo en ingles en la siguiente dirección:

http://search.cpan.org/~jhi/perl-5.8.0/lib/Net/FTP.pm

¿Quiéres más tutoriales como este? Escribir tutoriales toma una gran cantidad de tiempo y esfuerzo. Si este tutorial te ayudó a aprender o a solucionar algo, por favor considera dejar alguna donación en apoyo a Perl en Español.

Cliquea en el botón de abajo para dejar tu donación por medio de PayPal.

Comparte:
Categorías de Tutoriales:
En Nuestros Foros:

    Software error:

    junk after document element at line 1, column 32, byte 32 at /usr/lib64/perl5/vendor_perl/XML/Parser.pm line 187.
    

    For help, please send mail to the webmaster ([email protected]), giving this error message and the time and date of the error.

  • Entra a los foros »
Socializa:
Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Perl en Español es mantenido con Movable Type
Todo el contenido de Perl en Español está bajo una licencia CC:
Creative Commons License