En este artículo os voy a contar cómo descargar ficheros mediante sFTP (FTP encriptado) de manera automatizada; es decir, sin tener que andar ejecutando el comando ni tener que meter la clave a mano cada vez.
El script es bien sencillito:
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/bin/bash # Aquí ponemos los datos de conexión USUARIO=usuario CLAVE=clave HOST=miftp.com PUERTO=22 lftp -p${PUERTO} -u ${USUARIO},${CLAVE} sftp://${HOST} << CMD get copia_seguridad.bz2 copia_seguridad.bz2 bye CMD |
Basta con que sustituyas estos datos por los de tu servidor:
1 2 3 4 |
USUARIO=usuario CLAVE=clave HOST=miftp.com PUERTO=22 |
El puerto se puede dejar el de ssh por defecto, pero en varios servidores me he encontrado que usan uno distinto así que la opción para especificar el puerto es muy útil para mí.
lftp (sophisticated file transfer program) es el que se va a encargar de identificarse en el servidor mediante sftp. Todo lo que escribamos entre <
También podrías copiar tu clave al servidor, de tal forma que no sea necesario el logearte cada vez que te conectes.
Generamos la key:
ssh-keygen
Nos generara esto:
/home/myname/.ssh/id_rsa.pub
Ahora copiamos:
ssh-copy-id -i ~/.ssh/id_rsa.pub usuario_remoto@192.168.1.4
Te pedirá una vez la password del usuario_remoto y no tendrás que volver a meterla. Me parece mas seguro que escribir los datos en un script sobre todo la password ;p
Un saludo
PD: corregido, borra el anterior comentario
Keopx, Muchísimas gracias por tu aportación.
Ya he borrado el otro comentario. Por cierto, muy interesante tu blog.
Es muy interesante todo lo vertido en este post. Te agrego a mi lector de noticias, nos vemos
Muchas gracias me ha servido de mucho!!! ha funcionado todo correctamente.
Hola Estoy usando LFTP para transferencia de archivos, pero este no me deja transferir mas de 2Gb, tu sabrás la razón o si tengo que poner algún tipo de configuración, espero me puedas ayudar. saludos.