• Publicidad

Contactado un equipo fuera de la red

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Contactado un equipo fuera de la red

Notapor Kiloko » 2007-07-17 17:12 @758

Esto les va a interesar. Yo tengo hecho mi programa que corre en un servidor Unix. Lo que hace es que recolecta las MIB de algunos equipos y las envía a archivos TXT, y vale, todo felicidad hasta ahí, pero lo que quiero hacer es conectarme a este equipo desde mi ordenador local (que tiene instalado Linux (Ubuntu)... quiero conectarme a la carpeta en donde se guardan los archivos que mi programa va creando (son archivos .txt) y quiero que éstos los pase a mi máquina y después los comprima; después que los pase a una segunda carpeta en mi equipo, los descomprima, y los pase a una hoja de Excel. Mi mayor problema es el contactar a esta otra máquina ya que está en otro segmento de la red.

Desde mi ordenador la puedo ver por medio de ssh, mi nombre de usuario, @, y el número IP de la máquina.

Me podrián asesorar de cómo puedo hacer para contactar, buscar y bajar la información que necesito...

Saludos.
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Publicidad

Notapor explorer » 2007-07-17 17:26 @768

Esto se puede solucionar de muchas formas... yo propongo la que usaría yo (¡claro!).

Una de ellas (y ya que estamos en el foro Intermedio) es usar el ssh para bajarte los ficheros (por ejemplo usando sftp). Para comprimirles se puede usar el módulo Archive::Zip o el Archive::Tar. Para mover el zip a otra carpeta usar el move() del File::Copy. Descomprimirle con el mismo Archive::Zip (o no) y crear el fichero Excel con el Spreadsheet::WriteExcel.

Dejando aparte que no está muy claro porqué quieres comprimir para luego descomprimir, creo que se puede resolver el tema en unas 100 líneas de Perl (tirando para arriba y dependerá según cómo quieras hacer de bonitos los ficheros Excel).
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 Kiloko » 2007-07-17 18:20 @805

Ok, me queda claro el zip y los ficheros, pero no me quedo claro lo del ssh

¿Tengo que abrir una terminal y después bajarlos? Se supone que eso lo hace Perl, en un programa que se ejecute cada 5 días, y bueno, lo de pasar de una carpeta a otra lo utilizaría como una carpeta temporal, para decir, llegaron tantos archivos, se comprimen y pasan a la otra y son de tal a tal fecha, mas que nada para control.

Por cierto, traté de instalar el eclipse y no más no, lo dejo para mañana mientras estoy trabajando con el Komodo, jajajaja, más vale malo por conocido que bueno por conocer. Mañana intento instalarlo nuevamente y es que se tardá añoooo con mi super PC de 256 en RAM, es más lento que la procesión al zócalo...

Ah, por cierto, encontré una aplicación que se llama cron, en el Linux pero al parecer solo corre programas, algo parecido al programa de tareas de Windows. ¿Sabes algo sobre éste? ¿Me correrá también los programas en .pl?

Saludos...
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Notapor explorer » 2007-07-17 18:49 @825

Lo del SSH hemos tenido un ejemplo por este foro.

Nada de terminales. Cuando hablamos de hacer un programa es para que lo haga todo él mismo.

Si tienes un PC con 256 Mb de RAM, sí que te funcionará el eclipse. Apenas consumirá 80Mb de memoria.

El Komodo, sobre todo la última versión número 4, es un programa muy bueno. En mi opinión está al nivel del eclipse+e-p-i-c. Y eso es lo malo: lo que tiene uno muy bueno, el otro no lo tiene. He tenido temporadas en las que he tenido el mismo programa editando en los dos editores al mismo tiempo (sin problemas porque se dan cuenta de que el código cambia en el disco, al pasar de uno a otro). Por ejemplo, la edición es un poco más rápida en Komodo (solo un poco), pero en Eclipse te marca la posición global de las variables, mientras que en Komodo te las autocompleta mucho más rápido, mientras que en Eclipse el depurador es mucho más estable, Komodo permite seleccionar zonas rectangulares mientras que Eclipse permite desplazamientos de texto de bloques en tiempo real, Komodo tiene una mejor gestión de proyectos, pero Eclipse permite agregar ficheros externos al directorio, Komodo tienen un montonazo de documentación (sacada del ActiveState, claro), pero Eclipse permite consultarla dentro de sí, etc. etc. etc. (muchos etcéteras). Un auténtico rollo, porque no sabes con qué trabajar. Después de un mes trabajando con los dos, al final he seguido con Eclipse, pero por la sencilla razón de que se me colgaba mucho menos (estaba en Windows, claro).

En cuanto al cron, que es un comando básico de Linux, toda la documentación debería estar dentro de tu propio ordenador: abre una terminal y escribe man cron.

Te recomiendo la lectura de algún tutorial sencillo sobre Unix.
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

Conceptos

Notapor Kiloko » 2007-07-18 11:40 @527

OK ya estoy leyendo el archivo, pero tengo algunas dudas.
Por ejemplo me esta saliendo el error al momento de compilar el SFTP.

Código: Seleccionar todo
Can't load '/usr/lib/perl5/5.8.8/auto/IO/IO.dll' for module IO: /usr/lib/perl5/5.8.8/auto/IO/IO.dll: cabecera ELF inválida at /usr/lib/perl5/5.8.8/XSLoader.pm line 75.
Compilation failed in require at /usr/lib/perl5/5.8.8/IO/Handle.pm line 256.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.8/IO/Handle.pm line 256.
Compilation failed in require at /home/Arturo/Desktop/PERL/Komodo-IDE-4.1.1-279677-linux-libcpp6-x86//lib/support/dbgp/perllib/perl5db.pl line 251.

Ahora bien, pienso yo que todo viene desde la instalación.

Yo tengo mis documentos de Perl en /home/Arturo/perl. Bajo los módulos y los descomprimo manualmente en /home/Arturo/perl/lib. Después entro al módulo en una terminal y con el usuario root, los instalo:
Código: Seleccionar todo
perl makefile.pl
make
make test
make install


y al parecer todo se instala bien (lo hago en root porque si no me daba problemas de permisos de escritura) Ahora bien, ¿qué estoy haciendo mal? Antes hacia esto en Windows y no me daba problemas, parece ser que los archivos se van a /usr/lib/perl5/5.8.8/Net.

¿Qué está pasando? ¿Por qué no se copian los archivos en mi directorio /home/Arturo/perl/lib? ¿Por qué se van a /usr/lib/perl5/5.8.8/Net?

saludos.-..
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Notapor explorer » 2007-07-18 12:27 @560

Todo lo que has dicho sobre la instalación de módulos es justo lo que hace el comando cpan, además de tener cuidado en las dependencias, es decir, cuándo debe instalar uno o más módulos aparte de los indicados por ti que son necesarios para su funcionamiento.

En cuanto al directorio de instalación, si no le dices nada en el momento de hacer el perl makefile, lo instalará en un directorio por defecto. Él no sabe nada de tu directorio. /usr/lib/perl5/5.8.8 es un lugar normal en un Linux donde instalar los módulos. Si quieres instalar sólo en tu directorio deberás indicarlo (ahora mismo no sé cómo era... hace años que no lo hago... cosas de usar el comando cpan).
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 Kiloko » 2007-07-19 11:35 @524

Ya solucioné lo de los módulos, es tooodo un show ya que no puedo conectarme directamente, por el proxy, así q ue tengo que bajarlos, instalarlos y ejecutarlos en una terminal como root. Ahora bien, con el cron estuve leyendo un libro y la cosa es así:
yo creo mi archivo, por ejemplo: X
X ( tiene la información de mi archivo cron)
y éste lo subo por medio de crontab
crontab X y listo en teoría debería de jalar, pero a un tengo dudas sobre las rutas.
yo trabajo en
/export/home/kiloko
y en mi archivo X pongo
1 * * * * /export/home/kiloko/%Buenos dias % vamos a trabajar.
Y se supone que deberia de aparecer ese mensaje, pero no... ¿qué pasa?
Sé que estoy mal en la ruta. ¿Cómo se tomaría correctamente?
Y si es un programa, ¿tengo que especificar solo .pl o tengo que poner el parche? ¿Donde está el ejecutable?

Saludos...
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Notapor Kiloko » 2007-07-19 15:27 @685

Estoy tratando de hacer este código... pero me sale este error:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use Net::SFTP;

my $sftp = Net::SFTP->new($host, user => $Local,  password => $Local,);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Y este es el error.
Código: Seleccionar todo
Can't locate Net/SSH/Perl/Buffer.pm in @INC (@INC contains: /opt/Komodo-IDE-4.1/lib/support/dbgp/perllib /Perl/bin /usr/lib/perl5/5.8.8/i586-linux-thread-multi /usr/lib/perl5/5.8.8 /usr/lib/perl5/site_perl/5.8.8/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl .) at /usr/lib/perl5/site_perl/5.8.8/Net/SFTP/Buffer.pm line 6.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Net/SFTP/Buffer.pm line 6.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Net/SFTP/Attributes.pm line 7.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Net/SFTP/Attributes.pm line 7.
Compilation failed in require at /usr/lib/perl5/site_perl/5.8.8/Net/SFTP.pm line 8.
BEGIN failed--compilation aborted at /usr/lib/perl5/site_perl/5.8.8/Net/SFTP.pm line 8.
Compilation failed in require at /home/Arturo/comandols.pl line 3.
BEGIN failed--compilation aborted at /home/Arturo/comandols.pl line 3.

Ya revisé los archivos en lib y ahí están... ¿Qué estará pasando?
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Notapor explorer » 2007-07-19 15:53 @704

El mensaje de error dice que no puede localizar al módulo Net::SSH::Perl::Buffer.

Lo más seguro es que ese módulo dependa de la distribución Net::SSH::Perl, que no estará instalado.
Última edición por explorer el 2007-07-19 16:13 @718, 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

Notapor explorer » 2007-07-19 16:11 @716

Kiloko escribiste:Ya solucioné lo de los módulos, es tooodo un show ya que no puedo conectarme directamente, por el proxy, así que tengo que bajarlos, instalarlos y ejecutarlos en una terminal como root.
Pues se configura el comando cpan para que use el proxy, y listo...

Kiloko escribiste:Ahora bien, con el cron estuve leyendo un libro y la cosa es así:
yo creo mi archivo, por ejemplo: X
X ( tiene la información de mi archivo cron)
y éste lo subo por medio de crontab
crontab X y listo en teoría debería de jalar,
También se puede editar directamente con el comando crontab -e. crontab arrancará el editor indicado en la variable de entorno $VISUAL o $EDITOR.

Kiloko escribiste:pero a un tengo dudas sobre las rutas.
yo trabajo en
/export/home/kiloko
y en mi archivo X pongo
1 * * * * /export/home/kiloko/%Buenos dias % vamos a trabajar.
Y se supone que deberia de aparecer ese mensaje, pero no... ¿qué pasa?
Sé que estoy mal en la ruta. ¿Cómo se tomaría correctamente?
Y si es un programa, ¿tengo que especificar solo .pl o tengo que poner el parche? ¿Donde está el ejecutable?
La última parte de la línea del fichero para cron es un comando. Lo normal es poner la ruta completa a donde está ese comando. En la línea que pones, le estás diciendo a cron que todos los días, a todas las horas, cuando sea la hora en punta Y 1 minuto, ejecute el comando /export/home/kiloko/%Buenos dias % vamos a trabajar.

Hay tres comprobaciones que hacer:
* ¿Puedes ejecutar el comando /export/home/kiloko/%Buenos dias % vamos a trabajar. en tu directorio y ver qué sale? Pues eso mismo es lo que hará cron. Yo, por lo que veo, no sé lo que significa %Buenos dias % vamos a trabajar..
* La salida del comando. Si es hacia la salida estándar, cron te lo redirigirá al sistema de correo y te lo dejará en tu buzón.
* El periodo de tiempo indicado. Si son, por ejemplo, las 23:00 y en este momento actualizas el fichero cron con esa línea para que se ejecute a las 23:01, no te funcionará. El manual de cron dice que es muy posible que tengas que esperar al periodo siguiente, porque has realizado una modificación dentro del minuto anterior a la ocurrencia del evento. Así que en este caso tendrás que esperar hasta las 00:01 para ver que se ejecuta el cron.
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

Siguiente

Volver a Intermedio

¿Quién está conectado?

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