Guardando /proc/meminfo
mostrerà il Dirty
numero che si riduce nel tempo man mano che tutti i dati escono; parte di esso potrebbe riversarsi in Writeback
anche. Questo sarà un riepilogo rispetto a tutti i dispositivi, ma nei casi in cui un dispositivo sul sistema è molto più lento degli altri, di solito finirai dove tutto in quella coda è correlato ad esso. Probabilmente troverai il Dirty
numero grande quando inizi e il sync
termina all'incirca nello stesso momento in cui si avvicina a 0. Prova questo per ottenere un display interattivo:
watch -d grep -e Dirty: -e Writeback: /proc/meminfo
Con i normali dischi posso normalmente ignorare Writeback
, ma non sono sicuro che sia coinvolto più spesso nel percorso di trasferimento USB. Se semplicemente rimbalza su e giù senza una chiara tendenza, probabilmente puoi semplicemente guardare il Dirty
numero.
Puoi guardare il /sys/block/<device>/stat
file per il dispositivo appropriato durante la sincronizzazione. La colonna 9 indicherà il numero di richieste in transito sul dispositivo, che dovrebbe scendere a zero al termine della sincronizzazione.
Non conosco un modo per tradurlo in un numero di byte, ma dovrebbe darti un'idea approssimativa di quanta "roba" è ancora in sospeso.
Vedere il file stat.txt nella documentazione del kernel per ulteriori informazioni. (C'è anche un inflight
file in quella directory sul mio sistema che sembra contenere richieste di lettura e scrittura in volo, ma non riesco a trovare documenti per questo.)
Usando la risposta di Greg, puoi semplicemente avere sync
eseguito in background durante la visualizzazione dello stato del blocco Dirty in memoria.
Per ottenere ciò, esegui semplicemente questo comando:
sync & watch -n 1 grep -e Dirty: /proc/meminfo
Questo chiamerà sync
in background durante l'esecuzione di watch
nella parte anteriore. Quando il sync
il comando sarà terminato (intorno a quando la dimensione del blocco Dirty avrà raggiunto lo 0), avrai un output simile a questo:
1] + 27260 done sync
Ciò significa che il comando è terminato e puoi terminare il watch
comando con Ctrl +C .