He estado usando un rsyncscript para sincronizar datos en un host con los datos en otro host. Los datos tienen numerosos archivos de pequeño tamaño que contribuyen a casi 1.2TB.
Para sincronizar esos archivos, he estado usando el rsynccomando de la siguiente manera:
rsync -avzm --stats --human-readable --include-from proj.lst /data/projects REMOTEHOST:/data/
Los contenidos de proj.lst son los siguientes:
+ proj1
+ proj1/*
+ proj1/*/*
+ proj1/*/*/*.tar
+ proj1/*/*/*.pdf
+ proj2
+ proj2/*
+ proj2/*/*
+ proj2/*/*/*.tar
+ proj2/*/*/*.pdf
...
...
...
- *
Como prueba, tomé dos de esos proyectos (8,5 GB de datos) y ejecuté el comando anterior. Al ser un proceso secuencial, tiene 14 minutos y 58 segundos para completar. Entonces, para 1.2TB de datos tomaría varias horas.
Si pudiera hacer varios rsyncprocesos en paralelo (usando &, xargso parallel), me ahorraría tiempo.
Intenté con el siguiente comando con parallel(después cdde ir al directorio de origen) y tardé 12 minutos y 37 segundos en ejecutarse:
parallel --will-cite -j 5 rsync -avzm --stats --human-readable {} REMOTEHOST:/data/ ::: .
Esto debería haber tomado 5 veces menos tiempo, pero no fue así. Creo que me estoy equivocando en alguna parte.
¿Cómo puedo ejecutar múltiples rsyncprocesos para reducir el tiempo de ejecución?
rsyncs es nuestra primera prioridad.
rsyncs en paralelo es el foco principal ahora.