Un problema común al trabajar con archivos es la aplicación recursiva de operaciones o para cada subdirectorio de la carpeta completa. los scp
La utilidad se utiliza para transferir archivos y directorios a servidores remotos y admite operaciones recursivas.
Ejecución recursiva de scp
Si bien a veces es más rápido realizar transferencias grandes a un solo archivo conocido como tarball, la mayoría de las veces la sobrecarga de la transferencia de un solo archivo no importa.
Copia recursiva con scp
es fácil: solo usa el -r
bandera además 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 un arrastre en /remotepath/
, copiando el contenido de localpath/
al mando a distancia e insertándolos en /remotepath/localpath/
.
Si desea sincronizar en su lugar localpath/
Y /remotepath/
, deberá transferir la carpeta a la carpeta raíz de /remotepath/
, el destino. En este caso sería /
, el directorio raíz.
Esto también seguirá enlaces simbólicos en la ruta local al resolver archivos, pero no necesariamente creará esos mismos enlaces en el servidor remoto. Por ejemplo, copie un archivo nuevo desde y hacia /etc/nginx/sites-enabled
no lo colocará automáticamente en /etc/nginx/sites-available
en el mando a distancia.
En cambio, usando rsync
Linux tiene múltiples herramientas para manejar este trabajo y una de las mejores es rsync
, que lo hace todo scp
puede hacerlo, pero tiene muchas más opciones y es mucho más rápido de arrancar. Tampoco copia archivos que no han cambiado, lo que lo convierte en una gran herramienta para «sincronizar» continuamente dos directorios juntos sin transferir datos innecesariamente de nuevo.
rsync
básicamente funciona como scp
, con algunas otras opciones incluidas para especificar la configuración:
rsync -a -essh localpath/ user@remote:/remotepath/
los -a
bandera específica modo de archivo, que activa simultáneamente muchas opciones de uso común. los -e ssh
conjuntos de banderas rsync
transferir a través de SSH.
RELACIONADO: Cómo usar rsync para hacer copias de seguridad de datos en Linux