Transferencias de servidor a servidor con scp

Si necesitas transferir datos entre dos servidores linux, podrías transferirlos de esta manera: primero los bajas por FTP del servidor de origen, hasta tu PC, y después los subes de vuelta al servidor de destino. Esto es muy habitual cuando uno cambia de empresa de alojamiento o hosting. Las famosas “mudanzas de servidor”.

Del viejo FTP a “casa” y de “casa” al FTP nuevo, es la práctica habitual de aquellos que no conocen las agridulces mieles de la línea de comandos. Y seguramente no conocen esos placeres porque no andan haciendo estas cosas todos los días. Es decir, que se la trae floja. No es que sean unos perdedores -podemos ser geeks y a la vez comprensivos-.

El comando scp es muy práctico para esto, especialmente para transferencias muy grandes. scp utiliza SSH para copiar archivos entre hosts de una red.

Lo confieso. Me lo paso pipa y se me pone toda gordota transfiriendo enormes cantidades de datos entre dos servidores a kilómetros de distancia, directamente entre ellos. Cuando puedes hacerlo a 10 o 100 megabits, es una pasada, en lugar de las birrias de velocidades de subida a las que estamos acostumbrados en Europa España…

La sintaxis sería: scp [[user@]hostA:]fileA [[user@]hostB:]fileB

Un ejemplo, en el que estoy conectado al hostB y quiero copiar el archivo “documentos.txt” que está en el hostA. Como estoy en el hostB, especifico el archivo de origen indicando el usuario y hostA, y el archivo destino indicando la ruta y el archivo directamente.

# scp -v root@hostA:/home/archivos/documento.txt /home/backup/documento.txt


¿Y si resulta que cambié el puerto de SSH del 22 al 666?

# scp -v -P 666 root@hostA:/home/archivos/documento.txt /home/backup/documento.txt


¿Y si quiero copiar todos los archivos, incluyendo subcarpetas?

Sólo hay que recordar que en el hostB debemos especificar un nivel anterior en la estructura de carpetas.

En el siguiente ejemplo queremos copiar, desde el hostA, todos los archivos y subcarpetas de la estructura existente en /home/archivos/importantes/ al HostB en el que estamos conectados, quedando en /home/backup/archivos/importantes/

# scp -rv -P 666 root@hostA:/home/archivos/importantes/ /home/backup/archivos/

Y comprendiendo esto, sabremos apreciar en todo su esplendor los múltiples orgasmos cósmicos que puede proporcionarnos rsync, una aplicación que nos permitirá copiar datos entre servidores, pero sólo aquellos que sean distintos. O sea, la sincronización a la que están acostumbrados todos los que tienen un iPod, un iPhone o cualquier cacharro que “sincronice contactos o música”.

Para comprender por qué la Wikipedia en castellano puede ser un gran cagarro en ocasiones, baste citarla en este caso: “rsync es una aplicación para sistemas de tipo Unix que ofrece transmisión eficiente de datos incrementales comprimidos y cifrados. Mediante una técnica de delta encoding, permite sincronizar…” […]

Salvo una minoría, dudo que haya más valientes que sigan leyendo lo que es Rsync, aunque espero hacer un artículo sobre rsync pronto.

Esta entrada fue publicada en Linux, Servidores y etiquetada , , , . Guarda el enlace permanente.

Deja un comentario