Al ejecutar rsync
en un directorio con muchos archivos y directorios en múltiples niveles, ¿podemos estimar la cantidad de trabajo o el tiempo para terminar?
-
la opción de progreso solo muestra el progreso de la transferencia de un solo archivo, no el progreso de la transferencia de todos los archivos y directorios del directorio de origen.
-
Supongo que una forma es mirar los directorios que ha
transferido hasta ahora y compararlos con la fuente.Será de gran ayuda saber el orden de los archivos y directorios en
quersync
las transfiere.Supongo que puede estar relacionado con ese
rsync
ejecuta varios subprocesos y ¿qué hace cada subproceso?No estoy seguro de qué orden elige, y mi suposición anterior de orden de pan primero parece no ser correcta (así que lo tacho).
Respuesta aceptada:
Puedes hacer rsync
imprime una línea por archivo usando -i
y luego use pv -l
para informar el progreso según el recuento de líneas (en efecto, el recuento de archivos).
Necesitarás pv
(visor de tuberías):http://www.ivarch.com/programs/pv.shtml
rsync -ai sourcedir/ targetdir/ | pv -l -s filecount > logfile
Use el siguiente comando para obtener el recuento de archivos:
find sourcedir | wc -l
Nota:este comando mostrará información de progreso según la cantidad de archivos copiados. Esto funciona mejor si hay muchos archivos pequeños. Si solo hay unos pocos archivos que son enormes, no te divertirás mucho.
Para ver el progreso cuando actualiza (o compara) una copia existente:
(más información:Compara directorios pero no contenido de archivos)
rsync -aii --delete sourcedir/ targetdir/ | pv -l -s filecount > logfile
El segundo -i
hace que rsync imprima una línea por archivo incluso si son iguales.
Agregar -n
para comparar (en realidad, no copiar ni eliminar nada).
Omitir --delete
según sea necesario.
Este comando imprimirá en pantalla en tiempo real los archivos que difieren:
rsync -aii --delete sourcedir/ targetdir/ | pv -l -s filecount |
tee logfile | grep -v "^."
Los comandos anteriores funcionan mejor cuando hay muchos archivos pequeños. Si tiene pocos archivos grandes, algunos de los informes de progreso integrados de rsync podrían ser de más ayuda. Consulte la página de manual de rsync para -P
o --progress
o --info=progress2
. Pero cuidado:estas opciones no funcionarán bien con pv
. O al menos no he descubierto cómo.
Aquí hay una solución básica para ver el progreso según el tamaño:
- tenga en cuenta el espacio libre de la partición de destino antes de copiar usando
df -h
. - nota el tamaño del directorio fuente usando
du -sh
. - use
watch df -h
y mira cómo crece el tamaño.
Obviamente esto solo funciona al copiar y no al actualizar o comparar.