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.
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.
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.
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:
Así que básicamente estamos subiendo o enviando un archivo. Si en el servidor listamos el contenido veremos el archivo que subimos:
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:
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:
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/* .
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.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.