Sto provando a scrivere uno script Python che monitorerà un trasferimento rsync e fornirò una stima (approssimativa) del progresso percentuale. Per il mio primo tentativo, ho guardato un comando rsync --progress
e ho visto che la stampa messaggi come:Monitoraggio dei progressi di Rsync
1614 100% 1.54MB/s 0:00:00 (xfer#5, to-check=4/10)
Ho scritto un parser per tali messaggi, e usato la parte a-check per produrre una percentuale di avanzamento, qui, questo sarebbe completo al 60%.
Tuttavia, ci sono due difetti in questo:
- Nelle grandi trasferimenti, la "numeratore" della frazione al-check non sembra diminuire monotonicamente, quindi la percentuale di completezza può saltare all'indietro.
- Tale messaggio non viene stampato per tutti i file, il che significa che il progresso può saltare in avanti.
Ho dato un'occhiata ad altre alternative di messaggi da utilizzare, ma non sono riuscito a trovare nulla. Qualcuno ha qualche idea?
Grazie in anticipo!
I valori salta perché rsync inizia a trasferire dati mentre sta ancora valutando il lavoro che deve svolgere. È una misura valida quanto quella che otterrai. – hop
Non c'è modo di fare una valutazione preliminare del lavoro che deve fare? --dry-run --stats sembra essere il tipo di cosa da fare, sfortunatamente i valori che produce per i dati da trasferire non sono corretti. – paulmdavies
perché dovresti rallentarlo, solo per farlo mostrare informazioni inutili? – hop