Esiste un metodo per rallentare il processo di copia su Linux?
Ho un file di grandi dimensioni, diciamo 10 GB, e vorrei copiarlo in un'altra directory, ma non voglio copiarlo a tutta velocità. Diciamo che mi piacerebbe copiarlo con la velocità di 1mb/s, non più veloce. Vorrei usare un cp
standard di Linux comando.
È possibile? (Se sì, come?)
Modifica :quindi aggiungerò più contesto a ciò che sto cercando di ottenere.
Ho un problema sul sistema ArchLinux durante la copia di file di grandi dimensioni su USB (su una pendrive, un disco USB, ecc.). Dopo aver riempito la cache del buffer USB, il mio sistema smette di rispondere (anche il mouse si ferma; si muove solo sporadicamente). L'operazione di copia è ancora in corso, ma richiede il 100% delle risorse della scatola. Al termine dell'operazione di copia, tutto torna alla normalità:tutto è di nuovo perfettamente reattivo.
Forse è un errore hardware, non lo so, ma so di avere due macchine con questo problema (entrambe sono su ArchLinux, una è un desktop box, la seconda è un laptop).
La "soluzione" più semplice e veloce a questo (sono d'accordo che non è la "vera" soluzione, solo un brutto "hack") sarebbe impedire il riempimento di questo buffer copiando il file con una velocità di scrittura media dell'unità USB, per a me basterebbe.
Risposta accettata:
Puoi strozzare una pipe con pv -qL
(o cstream -t
fornisce funzionalità simili)
tar -cf - . | pv -q -L 8192 | tar -C /your/usb -xvf -
-q
rimuove i rapporti sui progressi di stderr.
Il -L
il limite è in byte.
Ulteriori informazioni su --rate-limit/-L
flag dal man pv
:
-L RATE, --rate-limit RATE
Limit the transfer to a maximum of RATE bytes per second.
A suffix of "k", "m", "g", or "t" can be added to denote
kilobytes (*1024), megabytes, and so on.
Questa risposta originariamente puntava a throttle
ma quel progetto non è più disponibile, quindi è scivolato fuori da alcuni sistemi di pacchetti.