GNU/Linux >> Linux Esercitazione >  >> Linux

Stima il tempo o il lavoro rimasto per finire per Rsync?

Durante l'esecuzione di rsync su una directory con molti file e directory a più livelli, possiamo stimare la quantità di lavoro o il tempo necessario per finire?

  • l'opzione di avanzamento mostra solo l'avanzamento del trasferimento di un singolo file, non l'avanzamento del trasferimento di tutti i file e le directory nella directory di origine.

  • Un modo credo sia guardare le directory che ha
    trasferito finora e confrontarle con la fonte.

    Sarà di grande aiuto conoscere l'ordine di file e directory in
    quale rsync li trasferisce.

    Immagino che possa essere correlato a quel rsync esegue più thread e cosa fa ogni thread?

    Non sono sicuro di quale ordine scelga e la mia precedente ipotesi di primo ordine per il pane non sembra corretta (quindi lo cancello).

Risposta accettata:

Puoi effettuare rsync stampa una riga per file usando -i e poi usa pv -l per segnalare l'avanzamento in base al conteggio delle righe (in effetti il ​​conteggio dei file).

Avrai bisogno di pv (visualizzatore di pipe):http://www.ivarch.com/programs/pv.shtml

rsync -ai sourcedir/ targetdir/ | pv -l -s filecount > logfile

Utilizzare il comando seguente per ottenere il conteggio dei file:

find sourcedir | wc -l

Nota:questo comando mostrerà le informazioni sullo stato di avanzamento in base al numero di file copiati. Funziona meglio se ci sono molti file di piccole dimensioni. Se ci sono solo pochi file di grandi dimensioni, non ti divertirai molto.

Per vedere i progressi durante l'aggiornamento (o il confronto) di una copia esistente:

(ulteriori informazioni:confrontare le directory ma non il contenuto dei file)

rsync -aii --delete sourcedir/ targetdir/ | pv -l -s filecount > logfile

Il secondo -i fa in modo che rsync stampi una riga per file anche se sono uguali.

Aggiungi -n per confrontare (in realtà non copiare o eliminare nulla).

Lascia fuori --delete secondo necessità.

Questo comando stamperà sullo schermo in tempo reale i file che differiscono:

rsync -aii --delete sourcedir/ targetdir/ | pv -l -s filecount | 
    tee logfile | grep -v "^."

I comandi sopra funzionano meglio quando ci sono molti file piccoli. Se hai pochi file di grandi dimensioni, alcuni dei rapporti sullo stato di avanzamento integrati di rsync potrebbero essere di maggiore aiuto. Vedi la pagina man di rsync per -P o --progress o --info=progress2 . Ma attenzione:queste opzioni non funzioneranno bene con pv . O almeno non ho scoperto come.

Relazionato:Hai bisogno di restrizioni per le schede jQuery attive una scheda alla volta utilizzando il controller mvc5?

Ecco una soluzione approssimativa per vedere i progressi in base alle dimensioni:

  • notare lo spazio libero della partizione di destinazione prima di copiare usando df -h .
  • nota la dimensione della directory di origine usando du -sh .
  • usa watch df -h e guarda le dimensioni crescere.

Ovviamente funziona solo durante la copia e non durante l'aggiornamento o il confronto.


Linux
  1. Elimina i file a cui non è stato effettuato l'accesso per un dato tempo su Linux

  2. Pseudo file per dati temporanei?

  3. Linux equivalente a robocopy?

  4. Perché rsync non utilizza il trasferimento delta per i file locali?

  5. Motivi per cui rsync NON trasferisce tutti i file?

Comando ls in Linux per elencare i file

Esempi di Rsync per trasferire file in Linux

cp -r senza file nascosti

rsync N file più recenti in una directory

Linux unisci cartelle:rsync?

C'è qualche altro motivo per cui non c'è più spazio sul dispositivo?