Mirando /proc/meminfo mostrará el Dirty el número se reduce con el tiempo a medida que se acumulan todos los datos; parte de ella puede derramarse en Writeback también. Ese será un resumen contra todos los dispositivos, pero en los casos en que un dispositivo en el sistema es mucho más lento que el resto, generalmente terminará donde todo en esa cola está relacionado con él. Probablemente encontrarás el Dirty número grande cuando empiezas y el sync termina aproximadamente al mismo tiempo que se acerca a 0. Intente esto para obtener una pantalla interactiva:
watch -d grep -e Dirty: -e Writeback: /proc/meminfo
Con discos regulares normalmente puedo ignorar Writeback , pero no estoy seguro de si está involucrado con mayor frecuencia en la ruta de transferencia USB. Si solo rebota hacia arriba y hacia abajo sin una tendencia clara, probablemente solo puedas mirar el Dirty número.
Puedes mirar el /sys/block/<device>/stat archivo para el dispositivo adecuado mientras realiza la sincronización. La columna 9 indicará la cantidad de solicitudes en curso en el dispositivo, que deberían reducirse a cero cuando se complete la sincronización.
No conozco una forma de traducir eso a una cantidad de bytes, pero debería darle una idea aproximada de cuántas "cosas" aún están pendientes.
Consulte el archivo stat.txt en la documentación del kernel para obtener un poco más de información. (También hay un inflight archivo en ese directorio en mi sistema que parece que podría contener solicitudes de lectura y escritura en curso, pero no puedo encontrar documentos para eso).
Al usar la respuesta de Greg, simplemente puede tener sync ejecutar en segundo plano mientras se muestra el estado del bloque sucio en la memoria.
Para lograr esto, simplemente ejecute este comando:
sync & watch -n 1 grep -e Dirty: /proc/meminfo
Esto llamará a sync en segundo plano mientras se ejecuta watch al frente. Cuando el sync el comando habrá terminado (alrededor de cuando el tamaño del bloque sucio haya llegado a 0), tendrá una salida similar a esta:
1] + 27260 done sync
Esto significa que el comando ha terminado y puedes eliminar el watch comando con Ctrl +C .