Un obstáculo común cuando se trabaja con archivos es la aplicación de operaciones de forma recursiva o en todos los subdirectorios de la carpeta completa. los scp
La utilidad se utiliza para transferir archivos y directorios a servidores remotos y admite operaciones recursivas.
Ejecutar scp de forma recursiva
Aunque a veces es más rápido realizar grandes transferencias en un solo archivo conocido como tarball, la mayoría de las veces no importa la sobrecarga de transferir archivos individuales.
Copiar recursivamente con scp
es fácil: simplemente use el -r
flag al mismo tiempo de cualquier otra cosa que hayas agregado:
scp -r localpath user@remote:/remotepath
Tenga en cuenta que esto está explícitamente en minúsculas -r
, a diferencia de muchos otros comandos que usan o requieren -R
.
Esto actuará como arrastrar y soltar en /remotepath/
, copiando el contenido de localpath/
al control remoto y colocándolos en /remotepath/localpath/
.
Si, en cambio, desea sincronizar localpath/
y /remotepath/
, tendrá que transferir la carpeta a la carpeta principal de /remotepath/
, el destino. Para este caso, eso sería /
, el directorio raíz.
Esto además seguirá links simbólicos en la ruta local al solucionar archivos, pero no necesariamente creará esos mismos links en el servidor remoto. A modo de ejemplo, copiar un archivo nuevo desde y hacia /etc/nginx/sites-enabled
no lo colocará automáticamente en /etc/nginx/sites-available
en el control remoto.
Usando rsync en su lugar
Linux tiene varias herramientas para manejar este trabajo, y una de las mejores es rsync
, que hace todo scp
puede hacer, pero tiene muchas más opciones y es mucho más rápido de arrancar. Tampoco copia archivos que no han sido modificados, lo que lo convierte en una gran herramienta para «sincronizar» continuamente dos directorios entre sí sin volver a transferir datos innecesariamente.
rsync
funciona simplemente igual que scp
, con algunas opciones más incluidas para especificar la configuración:
rsync -a -essh localpath/ user@remote:/remotepath/
los -a
bandera especifica modo de archivo, que activa muchas opciones de uso común al mismo tiempo. los -e ssh
bandera configura rsync
para transferir a través de SSH.
RELACIONADO: Cómo utilizar rsync para hacer una copia de seguridad de sus datos en Linux