|
|
|||||||||||||||||||||||||
|
IntroducciónMuchas 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 servidorEn 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; my $username = "miLogin"; my $ftp = Net::FTP->new("ftp.misitio.com") or die("No se pudo conectar al 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.
Acciones con FTPAhora 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 AvanzadasSi 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 NotasPara 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:
|
||||||||||||||||||||||||
|
|||||||||||||||||||||||||