X

Cómo copiar carpetas y archivos por ssh sin rsync en Linux

Si estás familiarizado con entornos linux, seguramente te habrás encontrado en alguna situación en la que quieres pasar datos de un equipo a otro, tanto en una red interna como a través de internet.Lo primero que te viene a la cabeza es el uso de rsync, o aunque no sea así, en cuanto te pongas a buscar un poco te vas a encontrar con que esa es la solución más comentada y más extendida. Pero ¿qué pasa si lo que quieres hacer es una simple copia de una carpeta o una serie de archivos?

Con rsync te tienes que meter en camisa de 11 varas, y empezar a combinar comandos para poder acceder por ssh, ajustar puertos, etc, todo para conseguir simplemente copiar una carpeta, con un soft que está pensado para la realización de copias, comparación de archivos, backups incrementales y demás.

Cómo mover archivos mediante ssh sin rsync

Si lo que queremos es una solución sencilla ya que no queremos mas que copiar los archivos entre máquinas linux sin complicarnos la vida, el único requisito que vamos a necesitar es tener el ssh activo en la máquina contra la que nos conectaremos, ya bien sea la de origen o destino, dependiendo de en qué dirección vayamos a hacer la copia.

Con este simple comando podremos hacer una copia en cualquiera de las dos direcciones, es decir, de la máquina de destino a la de orígen, o de la máquina de orígen a la de destino, dependiendo de donde nos venga mejor ejecutar la copia.

Esto lo vamos a conseguir con el comando scp o Secure copy, que además de tener varias opciones de configuración es muy sencillo de usar, por ejemplo, desde la máquina de destino:

1    2      3               4                    5
scp user@1.2.3.4:/ruta/carpeta/remota/* /ruta/carpeta/local
  1. scp: es el comando de copia
  2. user: será el usuario con el que conectaremos el ssh, por ejemplo root
  3. @1.2.3.4: la ip de la máquina remota, ya bien sea en la red o internet
  4. carpeta de orígen de los datos
  5. carpeta destino donde se van a copiar los datos

Una vez sabiendo esto podemos simplemente ejecutarlo en la máquina de orígen e invertir las carpetas, por ejemplo:

scp /ruta/carpeta/local/* user@1.2.3.4:/ruta/carpeta/remota/

Si por ejemplo tenemos el ssh en otro puerto, podemos utilizar directamente las opciones del comando para decirle que el ssh está en un puerto específico:

scp -P 1234 user@1.2.3.4:/ruta/carpeta/remota/* /ruta/carpeta/local

Así le estaríamos indicando que el ssh está en el puerto 1234.

La próxima vez que simplemente quieras copiar una carpeta o archivo no tienes mas que ejecutar este comando, para que copie todo lo que hay dentro de esa carpeta, subcarpetas incluídas, deberás utilizar la opción recursiva, por ejemplo:

scp -r -P 1234 user@1.2.3.4:/ruta/carpeta/remota/* /ruta/carpeta/local
o
scp -r user@1.2.3.4:/ruta/carpeta/remota/* /ruta/carpeta/local

¿Has usado rsync para copiar datos? ¿Cual de los dos comandos te parece más práctico solo para esto?

VicHaunter:
    Categorías: Ayuda
Artículo relacionado
Los comentarios de Disqus están cargando....

Como todos, usamos cookies.