macos - incremental - rsync options
rsync de repente se cuelga indefinidamente durante las transferencias (8)
Durante los últimos años, he estado usando un rsync one-liner para hacer copias de seguridad de carpetas importantes en mi computadora Mac Mini (OSX 10.9, 2.5 GHz i5, 4 GB RAM) a una caja FreeNAS (0.7.2 Revisión de Sabanda 5266, Pentium D 2.66 GHz, 822MiB RAM [reportado por el sistema, creo que hay 1 GB allí]). Estoy ejecutando un demonio rsync en el cuadro de FreeNAS. Recientemente, estas transferencias han estado colgando indefinidamente. He realizado el habitual Google-fu y no puedo identificar la fuente del problema o una solución.
The one-liner es: rsync -rvOlt --exclude ''.DS_Store'' --exclude ''.com.apple.timemachine.supported'' --delete /Volumes/Storage/Music/Albums/ 192.168.1.100::albums
He intentado habilitar -vvv y --progress, pero no hay un patrón que pueda discernir entre lo que cuelga y lo que no. Heck, si vuelvo a intentarlo, el mismo archivo podría colgarse en un punto diferente durante la transferencia o no. Una ejecución en seco (-n) tampoco siempre tiene éxito. El único "éxito" que he tenido es implementar un tiempo de espera (--timeout = 10) y volver a ejecutar el comando una y otra vez. Finalmente, me arrastro, pero sin garantía de éxito y a un ritmo que es inaceptable. He llegado a un punto en el que tengo un archivo que no puedo pasar.
El Mac Mini está conectado a mi enrutador a través de 5 GHz. La caja FreeNAS está conectada a ese mismo enrutador en un puerto de 100 mbit. Cuando las transferencias realmente se están realizando, rsync --progress informa 2.5-4 MB / s. Según --progress, un bloqueo es literalmente solo eso: no se está produciendo una transferencia de datos por lo que puedo decir.
Necesito ayuda tanto con el diagnóstico como con la solución.
Estaba teniendo el mismo problema y se debía a que me estaba quedando sin memoria durante el rsync. Creó un archivo de intercambio y resolvió el problema.
Estaba teniendo el mismo problema. Eliminar -v no funcionó para mí. Mi caso de uso es ligeramente diferente, ya que voy desde la fuente (EXT4) a ExFAT. El problema para mí fue que rsync intentaba preservar los archivos y permisos del dispositivo, que ExFAT no admite. Estaba usando los interruptores -hrltDvaP
. Los interruptores -D
y -a
parecían ser mi problema. El -rlptgoD (no -H,-A,-X)
-a
se traduce a -rlptgoD (no -H,-A,-X)
. Los conmutadores -p
, -g
y -o
parecían ser mi causa principal, ya que rsync soltaba una o todas esas durante el tiempo de ejecución. Quitar -a
y especificar explícitamente los conmutadores -Prltvc
está funcionando para mí.
bkupcmd="nice -n$nicelevel /usr/bin/rsync -Prltvc --exclude-from=/var/tmp/ignorelist "
Esto me sucedió cuando el dispositivo remoto se quedó sin espacio. El error no se mostraría cuando se usó la opción --verbose
; apagarlo dio lugar a una salida STDERR que explicaba que el dispositivo remoto no tenía espacio. Cuando liberé algo de espacio, pude ejecutar rsync de nuevo con --verbose
y todo salió bien.
Estoy usando openSUSE 13.2 Linux, rsync versión 3.1.1-2.4.1.x86_64, y experimenté problemas similares, haciendo un rsync entre mi computadora portátil y un disco duro externo, con el dispositivo de destino definitivamente teniendo suficiente espacio libre.
Pensé que obtuve una mejora al omitir la opción -v, pero después de 10 minutos se colgó nuevamente: strace dijo: seleccionar (5, [], [4], [], {60, 0}) = 0 (Tiempo de espera)
Y con "iotop" pude ver que se confirme que los procesos rsync ya no hacían un IO significativo en el disco.
Ni eliminar la opción -v ni limitar el ancho de banda utilizando --bwlimit solucionó el problema.
Lo más probable es que no sea "tu" problema, pero me topé con esta pregunta cuando estaba investigando un comportamiento similar:
Estoy observando "colgado" cuando el sitio de destino tiene demasiada carga de io. eG en uno de mis servidores de pequeñas empresas, cuando alguien está sincronizando su cuenta IMAP y descargando grandes lotes de datos y ejecuta un trabajo de copia de seguridad que escribe sus datos.
En esta situación, observo una fuerte caída en el rendimiento de rsync. Notable en un alto valor de carga en la top
de la máquina de destino, a pesar de que la CPU y Mem están bien.
Esperar a que finalice el proceso ha ayudado cada vez o interrumpir e intentar de nuevo rsync más tarde.
Me he estado ejecutando en la misma cosa una y otra vez y parece que te ayuda si eliminas la opción -v (lo cual es molesto si necesitas esa salida).
Solo tuve un problema similar al hacer rsync desde el disco duro a una unidad USB FAT32. rsync se congeló en menos de un segundo en mi caso y no reaccionó en absoluto después de eso ... lo dejó con CTRL + C.
Descubrió que el problema era una combinación de uso de enlaces físicos en el disco duro y tener un sistema de archivos FAT32 en la unidad USB, que no admite enlaces físicos.
Formatear la unidad USB con ext4 me solucionó el problema.
También sucede cuando el usuario en la máquina de destino no tiene permisos de escritura en la carpeta de destino. Puede intentar dar permiso de escritura a otras carpetas de destino:
sudo chmod -R o+w /path/to/target-folder