Supongamos que necesito copiar archivos
~/path/to/file
a user@remote:/path/to/file
~/path/to/another/file
a user@remote:/path/to/another/file
~/path/alternative
a user@remote:/path/alternative
¿Hay alguna manera de hacer esto usando rsync
o scp
?
He intentado rsync ~/path/{to/file,to/another/file,alternative} user@remote:/path
Pero no es una opción si necesito copiar a otro destino como another_path
.
Copiar archivo por archivo es demasiado largo si necesito copiar al menos 20 archivos.
rsync
file-transfer
scp
Nemoden
fuente
fuente
~/path/
entonces debe mirar la--files-from
opción de rsync .Respuestas:
Si desea transferir una selección de archivos a través de rsync, es decir, no todo el directorio, incluidos los contenidos, entonces la mejor manera de hacerlo es mediante la
--files-from
opción de rsync . Coloque las rutas de los archivos que desea transferir, en relación con el directorio de origen que especifique. Consulte la página de manual de rsync para obtener información más detallada.fuente
Este script copiará un número arbitrario de directorios de entrada, a un número arbitrario de hosts, en paralelo mediante el uso de trabajos de fondo de shell. Aquí usé cpio porque es fácil dividir y canalizar los archivos de entrada, pero puede modificar esto para usar
rsync --files-from
también.Uso:
multi-cpio.sh <srcfile> <dstfile>
(requiere claves ssh en su lugar para el inicio de sesión no interactivo)srcfile
contiene un directorio por línea, como:dstfile
contiene un objetivo remoto por línea, como:... y la fuente de
multi-cpio.sh
:Consulte también http://rightsock.com/~kjw/Ramblings/tar_v_cpio.html para obtener referencias adicionales de cpio y la inspiración para este script.
Editar: sintaxis alternativa para un solo src dst, sin crear srcfile destfile:
fuente