[opensuse-es] Script de Perl
Hola, estoy intentando hacer una copia remota de un fichero con un script a un host que solo tiene abierto el puerto ssh. Se me ha ocurrido hacerlo en Perl, y no encuentro la extensión (modulo CPAN) Net::SCP::Expect; ¿¿Suse tiene este módulo ?? El script es el siguiente: #!/bin/perl # Definimos los modulos de perl que vamos a usar use Net::SCP::Expect; .... # Creamos la conexion para transferir el archivo $scpe=Net::SCP::Expect->new(host => $host, user => $userS, password => $passwordS) or die $!; # Transferimos el archivo $scpe->scp(”$host:$archivo”, “$ruta/$archivo”); .... ¿¿ se puede hacer facilmente de otra manera ? -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
On Viernes 17 Diciembre 2010 19:32:23 A C escribió:
Hola, estoy intentando hacer una copia remota de un fichero con un script a un host que solo tiene abierto el puerto ssh.
Se me ha ocurrido hacerlo en Perl, y no encuentro la extensión (modulo CPAN) Net::SCP::Expect;
Hola A C. Revisa aqui: http://en.opensuse.org/openSUSE:Packaging_Perl De lo siguiente no se, no soy programador. Saludos. -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El vie, 17-12-2010 a las 18:32 +0000, A C escribió:
# Creamos la conexion para transferir el archivo $scpe=Net::SCP::Expect->new(host => $host, user => $userS, password => $passwordS) or die $!;
# Transferimos el archivo $scpe->scp(”$host:$archivo”, “$ruta/$archivo”); ....
¿¿ se puede hacer facilmente de otra manera ?
* si es desatendido via cron lo mas indicado es generar un par de llaves ssh sin contraseña. ssh-keygen y una vez generada transferir la parte publica al usuario y maquina remota que se desee ssh-copy-id -i .ssh/llavegenerada.pub usuario@maquina.remota.com * A partir de aqui directamente con scp, rsync o cualquier comando usando ssh. #!/bin/sh # a continuacion las variables de substitucion que quieras # añadir el flat -P puerto si el puerto no es el standard. scp -i /usuario/.ssh/llavegenerada-parteprivada fichero.txt usuario@maquina.dominio.com:/directorio/ * con rsync y las opciones que quieras por ssh. rsync -a -e 'ssh -i /usuario/.ssh/llavegenerada-parteprivada' fichero.txt usuario@maquina.dominio.com:/directorio/ * Supongamos que generas un fichero y quieres enviarlo en el mismo script, ejemplo creando un tar.bz2 de /etc y enviandolo por ssh. t=`date +%Y-%m-%d_%I-%M-%S` tar --force-local --atime-preserve -cpjf - /etc/ | ssh -i /usuario/.ssh/llavegenerada-parteprivada \ usuario@host-o-ip "cat >> /directorio/CopiaDeEtc_$t.tar.bz2" -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Muchas gracias.
Claro es para que una rutina lo haga de forma desatendida.
Una máquina corre Suse y la otra Solaris 9.
Saludos
--- El vie, 17/12/10, jose maria
De: jose maria
Asunto: Re: [opensuse-es] Script de Perl Para: opensuse-es@opensuse.org Fecha: viernes, 17 de diciembre, 2010 21:38 El vie, 17-12-2010 a las 18:32 +0000, A C escribió: # Creamos la conexion para transferir el archivo $scpe=Net::SCP::Expect->new(host => $host, user
=> $userS, password =>
$passwordS) or die $!;
# Transferimos el archivo $scpe->scp(”$host:$archivo”, “$ruta/$archivo”); ....
¿¿ se puede hacer facilmente de otra manera ?
* si es desatendido via cron lo mas indicado es generar un par de llaves ssh sin contraseña. ssh-keygen y una vez generada transferir la parte publica al usuario y maquina remota que se desee ssh-copy-id -i .ssh/llavegenerada.pub usuario@maquina.remota.com
* A partir de aqui directamente con scp, rsync o cualquier comando usando ssh.
#!/bin/sh # a continuacion las variables de substitucion que quieras # añadir el flat -P puerto si el puerto no es el standard.
scp -i /usuario/.ssh/llavegenerada-parteprivada fichero.txt usuario@maquina.dominio.com:/directorio/
* con rsync y las opciones que quieras por ssh.
rsync -a -e 'ssh -i /usuario/.ssh/llavegenerada-parteprivada' fichero.txt usuario@maquina.dominio.com:/directorio/
* Supongamos que generas un fichero y quieres enviarlo en el mismo script, ejemplo creando un tar.bz2 de /etc y enviandolo por ssh.
t=`date +%Y-%m-%d_%I-%M-%S` tar --force-local --atime-preserve -cpjf - /etc/ | ssh -i /usuario/.ssh/llavegenerada-parteprivada \ usuario@host-o-ip "cat >> /directorio/CopiaDeEtc_$t.tar.bz2"
-- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
-- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
El Fri, 17 Dec 2010 18:32:23 +0000, A C escribió:
Hola, estoy intentando hacer una copia remota de un fichero con un script a un host que solo tiene abierto el puerto ssh.
Se me ha ocurrido hacerlo en Perl, y no encuentro la extensión (modulo CPAN) Net::SCP::Expect;
¿¿Suse tiene este módulo ??
Por lo que parece, no: http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_11...
El script es el siguiente:
#!/bin/perl # Definimos los modulos de perl que vamos a usar use Net::SCP::Expect;
....
# Creamos la conexion para transferir el archivo $scpe=Net::SCP::Expect->new(host => $host, user => $userS, password => $passwordS) or die $!;
# Transferimos el archivo $scpe->scp(”$host:$archivo”, “$ruta/$archivo”); ....
¿¿ se puede hacer facilmente de otra manera ?
Con bash, scp y expect: http://www.zedwood.com/article/142/linux-scp-expect-script Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
Voy a ver si lo puedo hacer en BASH con expect (una maquina corre solaris 9).
De todas formas he probado el articulo de
http://www.it-suniverse.com/trusted_ssh.php
y parce que funciona perfectamente.
Graias a todos
----- Mensaje original ----
De: Camaleón
Hola, estoy intentando hacer una copia remota de un fichero con un script a un host que solo tiene abierto el puerto ssh.
Se me ha ocurrido hacerlo en Perl, y no encuentro la extensión (modulo CPAN) Net::SCP::Expect;
¿¿Suse tiene este módulo ??
Por lo que parece, no: http://download.opensuse.org/repositories/devel:/languages:/perl/openSUSE_11...
El script es el siguiente:
#!/bin/perl # Definimos los modulos de perl que vamos a usar use Net::SCP::Expect;
....
# Creamos la conexion para transferir el archivo $scpe=Net::SCP::Expect->new(host => $host, user => $userS, password => $passwordS) or die $!;
# Transferimos el archivo $scpe->scp(”$host:$archivo”, “$ruta/$archivo”); ....
¿¿ se puede hacer facilmente de otra manera ?
Con bash, scp y expect: http://www.zedwood.com/article/142/linux-scp-expect-script Saludos, -- Camaleón -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org -- Para dar de baja la suscripción, mande un mensaje a: opensuse-es+unsubscribe@opensuse.org Para obtener el resto de direcciones-comando, mande un mensaje a: opensuse-es+help@opensuse.org
participants (4)
-
A C
-
Antonio
-
Camaleón
-
jose maria