Transferir documentos y archivos a otra computadora usando la terminal

Hay diferentes programas en Linux para transferir documentos, archivos, imágenes y vídeos a otro Computer. Yo aquí hablare de rsync que utiliza en la transferencia el protocolo ssh, cuya principal función es el acceso remoto a un servidor por medio de un canal seguro en el que toda la información está cifrada.




Aquí hablare cómo utilizar rsync en Debian y sus derivados como Ubuntu y Linux Mint. En otras Linux distribuciones (Red Hat, Fedora, Mandriva, Suse, Gentoo,.., se usan diferentes comandos para hacer lo mismo.


Una cosa importante que no se te debes olvidar cuando utilizes uno de estos tres programas, cuando quieras copiar algo, y tenga un nombre con espacios vaciós, por ejemplo, mi documento.txt, tienes que usar un string, dos comillas dobles " ", asi que mi documento.txt, seria "mi documento.txt", si no utilizas el string en estos casos, te dara error.


Instala ssh y rsync


ssh

Instalaremos ssh con OpenSSH, que viene junto con otras aplicaciones, como por ejemplo sftp. En Ubuntu y Linux Mint viene openssh-client instalado, pero nó openssh-server, que tendrás que instalarlo en el computer donde quieres llevar la copia, En Debian tienes que instalar los dos.

Instala openssh-server en Ubuntu, Linux Mint y Debian.

Actualiza tu sistema

sudo apt-get update

Instala openssh-server

sudo apt-get install openssh-server

Instala openssh-client en Debian, en Ubuntu y Linux Mint viene instalado por defecto

sudo apt-get install openssh-client


ssh utiliza el Puerto 22 por defecto, para comunicarse fuera de tu computer. Para normales transferencias entre ordenadores, lo puedes dajarlo así o si quieres cambiarlo, solo tienes que cambiar el Puerto, esto lo haces escribiendo una p minúscula -p, por ejemplo, queremos transferir un documento por el Puerto 45, escribimos,

ssh -p 45 [nombre_usuario_destino]@[ip_destino]

Como decia, cambiar el numero de Puerto generalmente es una opción personal, nó obligatoria..., pero hay algunos casos, que sí lo tienes que cambiar, por ejemplo cuando tienes un Servidor web, donde esta tu pagina Web. La empresa donde esta tu Servidor web te dá generalmente la opción de comunicarte con ssh, y por motivos de seguridad te da un numero de Puerto que nó es 22, que es el Puerto predestinado para ssh.

Cuando hayas acabado de transferir lo que quieras, es aconsejable por seguridad, desconectar openssh-server.

Lo desconectamos con este comando

sudo service ssh stop

Con este comando lo paramos en Debian, pero en Linux Mint y Ubuntu, cuando reiniciemos el ordenador, volverá a activarse, asi que tenemos que deshabilitar, lo deshabilitamos con este comando,

sudo systemctl disable sshd.service

Cuando quieras activarlo de nuevo ssh, escribe este comando,

sudo systemctl enable sshd.service

También tenemos que escribir,

sudo service ssh start

Si recibes algún aviso despues de hacer esto, recomienza ssh

sudo systemctl restart ssh


Si queremos recibir documentos, archivos, videos,.. via ssh desde la otra computadora y queremos usar otro Puerto en vez del Puerto que viene por defecto en ssh, el 22, tendremos que abrir los Puertos de este computer, que en las distribuciones basadas en Debian, como Ubuntu y Linux Mint, están por defecto cerradas. Para hacer esto, necesitamos instalar un Cortafuegos que nos dará la oportunidad de abrir los Puertos que queramos, instalaremos ufw que utiliza la línea de comandos y es fácil de utilizar.

Actualiza tu sistema

sudo apt-get update

Instala ufw

sudo apt-get install ufw


Ejemplo:

Queremos transferir la pelicula Matrix del computer A al computer B, usaremos el programa rsync que suele utilizar ssh para transferencias y usaremos el Puerto 45

Tenemos que abrir en los dos ordenadores el Puerto 45, en el computer B lo abrimos de esta manera,

sudo ufw allow 45/tcp

También tenemos que iniciar ssh, para que el computer B, se comunique via ssh

sudo service ssh start

En el computer A, donde esta la pelicula, abrimos este Puerto directamente con rsync

rsync -p 45 -z ~/Matrix.mp4 linux@192.168.178.25:/home/linux

Una cosa importante que te recomiendo por seguridad, cerrar los puertos que hayas abierto, cuando hayas acabado de transferir lo que quieras.

Los puertos los cerramos de esta manera,

sudo ufw deny 45/tcp

Cuando reinicies el computer tendras este Puerto cerrado

Qué no se te olvide deshabilitar tambien ssh, un poco mas arriba explico como hacerlo.

rsync

Rsync y scp hacen cosas parecidas, pero como dice openssh, el protocolo scp está desactualizado, es inflexible y no se repara fácilmente, por esté motivo, no hablare de él aquí.

No es recomendable usar sudo cuando utilizes rsync, si el archivo o documento que quieras copiar no tiene privilegios o derechos de acceso, porque te puede sobrescribir tu sistema de destino.


Rsync viene instalado en Linux Mint y Ubuntu, pero nó en Debian, lo instalamos con este comando,

sudo apt-get install rsync


Ejemplo:

Queremos copiar la pelicula Matrix.mp4, que está en el directorio Vídeos del computer A y queremos llevar una copia al computer B.

La sintaxis:

rsync [opción] [archivo] [usuario_destino]@[ip_destino]:[/camino_del_directorio_destino]

rsync Es como empieza el comando.

-z Con esta opción, rsync comprime los datos del archivo a medida que se envían a la máquina de destino, lo que reduce la cantidad de datos que se transmiten, algo que es útil en una conexión lenta.

archivo El archivo que queremos mandar, podemos también escribir el camino donde esta nuestro archivo, como por ejemplo -z ~/Vídeos/Matrix.mp4.

usuario_destino Aquí escribimos el nombre de usuario del computer B.

ip_destino Escribimos el IP del computer B, Aqui explico como saber el ip.

: Es el separador entre el IP y la trayectoria de los directorios donde queremos llevar la copia, esto es,

/camino_del_directorio_destino.

El comando:

rsync -z /home/linux/Vídeos/Matrix.mp4 me@192.168.178.40:/home/me


Escribimos en el Terminal antes de transferir nuestra copia desde el computer A

sudo service ssh start


Empezamos con la transferencia

Como el computer B es nuestro servidor, empezamos primero, escribo en el Terminal,

sudo service ssh start y le damos a la tecla ↵ entrar.

password para root

En el computer A, que es donde esta nuestra pelicula, la transferimos escribiendo en el Terminal,

rsync -z /home/linux/Vídeos/Matrix.mp4 me@192.168.178.40:/home/me y le damos a la tecla ↵ entrar, que es como transferimos nuestra película.

password para root

Con esto habremos transferido la película.


Ejemplo:

Queremos transferir la carpeta Privado que esta en el directorio Documentos del computer B al computer A. Dentro de la carpeta Privado tenemos algunos documentos con diferentes permisos, en nuestra transferencia queremos que rsync guarde estos permisos.

La sintaxis:

rsync [--progress] [-avz] [camino_archivo] [usuario_destino]@[destino_ip]:[/camino_del_directorio_destino]

--progress Nos dá la oportunidad de ver el progreso de nuestra transferencia

-avz Esto transferirá recursivamente todos los archivos de la carpeta. Los archivos se transfieren en modo "archivo", lo que garantiza que el símbolo de los enlaces, dispositivos, atributos, permisos, propiedades, etc, se conservan en el traspaso. Además, la compresión se utilizará para reducir el tamaño de las porciones de datos de la transferencia.

El comando;

rsync --progress -avz ~/Documentos/Privado linuxuser@192.168.178.25:/home/linuxuser


Escribimos en el Terminal antes de transferir nuestra copia desde el computer B

sudo service ssh start


Empezamos con la transferencia

Como el computer A es donde transferimos la película, empezamos primero, escribo en el Terminal,

sudo service ssh start y le damos a la tecla ↵ entrar.

password para root

En el computer B, que es donde esta nuestra carpeta Privado, la transferimos, escribo en el Terminal,

rsync --progress -avz ~/Documentos/Privado linuxuser@192.168.178.25:/home/linuxuser y le damos a la tecla ↵ entrar, que es como transferimos nuestra pelicula.

password para root

Con esto habremos transferido la carpeta Privado del computer B al computer A.

Cuando hayas acabado de transferir lo que quieras, es aconsejable por seguridad, desconectar openssh-server, aqui digo como hacerlo.

Sí quieres, puedes usar rsync con una interfaz graficá, la instalas con este comando,

sudo apt-get install grsync

Tienes que reiniciar tú computer, cuando lo hayas hecho, en tu Linux distribución, busca en tú directorio Herramientas del sistema, por Grsync.

Y te saldra una cosa así.

password para root


Si escribes en tu Terminal man rsync, recibiras mas opciones para copiar con rsync.


Si quieres usar otros metodos para transferir documentos y archivos aquí digo como hacerlo.









Escrive tu comentario: