En este post te mostraré un ejemplo sencillo sobre cómo usar scp para copiar archivos entre dos computadoras, ya sea que copiemos desde A hacia B o desde B hacia A.

scp significa secure copy y, aunque suene redundante, copia archivos de manera segura, algo así como ssh.

Voy a explicar todo con ejemplos.

SCP

Para ejemplificar usaré mi computadora con Windows y mi Raspberry Pi 4. En la vida real podrían ser dos servidores separados geográficamente, una máquina virtual, etcétera.

Llamaremos a mi computadora con Windows cliente, y a la Pi servidor. Vamos a ver cómo copiar de cliente a servidor, y de servidor a cliente.

Vamos a ejecutar todos los comandos desde el cliente, incluso para copiar un archivo hacia el servidor.

Sintaxis de scp

La sintaxis es:

scp origen destino

Cuando el origen o destino son algo remoto, indicamos el usuario y la ip a la que hay que conectarse. Suponiendo que copiamos desde un host remoto sería:

scp usuario@ip:ruta_del_archivo destino

Con los ejemplos quedará mejor explicado. Por favor nota que los dos puntos (:) separan al usuario con host, de la ruta.

Copiar de cliente a servidor

Ejecutamos:

scp escribir_contenido.py pi@192.168.1.79:/home/pi/

El origen es escribir_contenido.py, aquí podría igualmente ser la ruta absoluta de un archivo.

El destino es /home/pi/ dentro del servidor con la ip 192.168.1.79, por ahora nos estamos conectando como el usuario pi. Al conectarnos se nos pedirá la contraseña:

Usar scp para subir un archivo

Así que básicamente estamos subiendo o enviando un archivo. Si en el servidor listamos el contenido veremos el archivo que subimos:

Verificar copia de archivo en servidor

Usar scp para copiar de servidor a cliente

Veamos el proceso inverso; ahora vamos a descargar un archivo. Recuerda que esto igualmente lo haremos dentro del cliente.

Primero, en el servidor, observamos el archivo que vamos a copiar y vemos su ruta:

Archivo que se va a descargar del servidor

La ruta absoluta es /home/pi/k.png así que ejecutamos:

scp pi@192.168.1.79:/home/pi/k.png C:\Users\usuario\Desktop\

Ahora el origen es el servidor remoto, y el destino una ruta local. Al ejecutar, la imagen llamada k.png estará en mi escritorio:

Descargar archivo con scp

Copiar directorio completo

También puedes copiar una carpeta completa. En ese caso la sintaxis es:

scp -r directorio_local usuario@host:/home/parzibyte

Por ejemplo:

scp -r dist usuario@host:/home/parzibyte

Va a copiar la carpeta dist y todo su contenido en /home/parzibyte, creando la carpeta dist en /home/parzibyte. Si quisieras copiar todo el contenido, recomiendo copiar toda la carpeta y luego con SSH mover el contenido situándote en la carpeta y ejecutando mv dist/* .

Conclusión

Así es como puedes usar scp para copiar archivos entre servidores. En este caso copié de Windows hacia Linux, pero podría ser igualmente de Linux a Linux.

Si quieres, puedes leer más sobre Linux en mi blog.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto