• Publicidad

Problemas con el módulo " DateTime " de Perl

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Notapor explorer » 2006-08-29 15:50 @701

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use Net::FTP;
use strict;
no warnings;

use constant {
    USUARIO  => "user",
    PASSW    => "pass",
    SERVIDOR => "ip_ftp_server",
};

my ($dia,$mes,$anno) = (localtime)[3,4,5]; $anno+= 1900; $mes++;
my $fichero = "BACKUPS_$anno-$mes-$dia.tar.gz";

system("tar czvf $fichero /root/LOGS/");

my  $ftp= Net::FTP->new(SERVIDOR)  or die "No se pudo conectar: $!\n";
    $ftp->login(USUARIO, PASSW)    or die "Login incorrecto: $!\n";
    $ftp->put($fichero)            or die "No se pudo hacer upload del archivo: $!\n";
    $ftp->quit();
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Última edición por explorer el 2008-08-07 13:47 @615, editado 1 vez en total
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Notapor TELCO71 » 2006-08-30 15:07 @672

Estimados :D ,

Por alguna loca razón se me dañó el módulo de PERL " Net::FTP " :oops: . Intenté reinstarlo ... pero tengo problemas para subir los archivos con el comando put. Aclaro que estuvo funcionando perfectamente el script y luego que actualicé la versión de PERL a la 5.8.8 detecté este problema.
Se puede hacer lo siguiente con los comandos system (" ");

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $FTP = Net::FTP->new($SERVER) or die ("No se pudo conectar $!");
$FTP->login($USERNAME,$PWD) or die ("Login incorrecto: $!");
$FTP->put("BACKUPS_$fecha.zip") or die("No se pudo hacer upload del archivo: $!");
$FTP->quit();
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Como sería hacer lo mismo desde los comandos system ?

Saludos y muchas Gracias !! :wink:
TELCO
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor explorer » 2006-08-30 15:23 @682

Prueba a reinstalar el módulo Net::FTP con el comando cpan -f Net::FTP.

Para hacer lo mismo desde system, tendrás que aprender a usar el comando ftp y a personalizar su fichero de configuración.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor TELCO71 » 2006-08-31 07:42 @362

Estimado Explorer , :D

Me sigue sin reconocer el parámetro -f y tengo la última versión estable instalada de Perl . :oops:

Código: Seleccionar todo
[root@localhost ~]# cpan -f Net::FTP
Unknown option: f
CPAN: Storable loaded ok
Going to read /root/.cpan/Metadata
  Database was generated on Wed, 30 Aug 2006 04:32:29 GMT
Net::FTP is up to date.
[root@localhost ~]# perl -v

This is perl, v5.8.8 built for i686-linux

Copyright 1987-2006, Larry Wall


Me explicas cómo hacerlo con system(" "); ya que creo que no tendría mas problemas como los que me ocurrieron actualmente con el módulo de Net::FTP .

¡¡ Saludos y gracias !! :wink:
TELCO
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor explorer » 2006-08-31 11:00 @500

Yo el cpan que tengo es la versión 1.87: cpan -v.
Y sobre el system, tienes que poner dentro de él las mismas instrucciones que harías con el comando ftp. Haz un man ftp para saber los detalles, sobre todo los concernientes a cómo has de crear el fichero .netrc, que guardará el nombre de usuario y contraseña de la conexión, y la macro init que se encargará de hacer el transporte de tus ficheros.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor TELCO71 » 2006-08-31 16:32 @731

Estimado Explorer :D ,

Mi versión de CPAN es la :

Código: Seleccionar todo
[root@localhost ~]# cpan -v
cpan script version 1.03
CPAN.pm version 1.7602
[root@localhost ~]#


Ya creé mi archivo .netrc para automatizar la conexión al FTP y funciona perfecto ya que se conecta automáticamente sin pedir user y pass.
Cuando corro mi script con las siguientes sentencias se establece la conexión pero se queda esperando con el FTP establecido al equipo remoto que le pase los comandos.
Código: Seleccionar todo
ftp>


O sea que esta primer sentencia está correcta :

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
system("ftp ip");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Pero estas otras no están funcionando o seguramente las estoy poniendo mal

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
system("put BACKUPS_$fecha.zip");
system("bye");
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¡¡ Saludos y gracias !! :wink:
TELCO
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor explorer » 2006-08-31 19:58 @873

Una vez iniciada la sesión con ftp a través de system, no puedes enviarle ningún parámetro hasta que el ftp termine.

Eso quiere decir que las instrucciones de put deberán ir en la macro init dentro de .netrc.

Y eso también quiere decir que si tienes que indicarle qué fichero de backups quiere que transmita, tienes que personalizar el fichero .netrc antes de llamar al ftp.

Esto último lo puedes hacer con algún sistema de plantillas, que genere el .netrc con tu fichero de Backup.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor creating021 » 2006-08-31 20:14 @884

Aunque no lo digo a tiempo, no sobra.
Hay un prgagma que podés usar mientras haces el código que te trae documentos de POD cuando hay un error:
use diagnostics;
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor TELCO71 » 2006-09-01 09:03 @419

Estimado Explorer , :D

¿¿ Cómo puedo actualizar mi versión de CPAN para que me reconozca el comando " -fi " que me pasaste ??
Mi idea es utilizar el módulo de Net::FTP que me está fallando al subir los archivos por FTP .

¡¡ Saludos y muchas gracias !!!
TELCO
Avatar de Usuario
TELCO71
Perlero nuevo
Perlero nuevo
 
Mensajes: 48
Registrado: 2006-08-10 10:43 @488
Ubicación: Buenos Aires / Argentina

Notapor explorer » 2006-09-01 09:22 @432

Código: Seleccionar todo
cpan Bundle::CPAN
o
Código: Seleccionar todo
perl -MCPAN -e 'install Bundle::CPAN'

Atención: Net::FTP viene incluído en la distribución base de Perl, así que si has actualizado el Perl tuyo, también has actualizado Net::FTP.

Otra cosa, me he dado cuenta de que el comando cpan no admite mas que un sólo parámetro de entrada, así que entonces deberás probar con cpan -f Net::NTP.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Anterior

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados