Existe-t-il une méthode pour ralentir le processus de copie sous Linux ?
J'ai un gros fichier, disons 10 Go, et j'aimerais le copier dans un autre répertoire, mais je ne veux pas le copier à pleine vitesse. Disons que je voudrais le copier à la vitesse de 1 Mo/s, pas plus vite. J'aimerais utiliser un cp
Linux standard commande.
Est-ce possible? (Si oui, comment ?)
Modifier :donc, je vais ajouter plus de contexte à ce que j'essaie de réaliser.
J'ai un problème sur le système ArchLinux lors de la copie de fichiers volumineux via USB (sur une clé USB, un disque USB, etc.). Après avoir rempli le cache du tampon USB, mon système ne répond plus (même la souris s'arrête, elle ne bouge que sporadiquement). L'opération de copie est toujours en cours, mais elle consomme 100% des ressources de la box. Lorsque l'opération de copie est terminée, tout redevient normal - tout est à nouveau parfaitement réactif.
C'est peut-être une erreur matérielle, je ne sais pas, mais je sais que j'ai deux machines avec ce problème (les deux sont sur ArchLinux, l'une est une boîte de bureau, la seconde est un ordinateur portable).
La "solution" la plus simple et la plus rapide à cela (je suis d'accord que ce n'est pas la "vraie" solution, juste un "hack" laid) serait d'empêcher ce tampon de se remplir en copiant le fichier avec une vitesse d'écriture moyenne de la clé USB, pour moi ça me suffirait.
Réponse acceptée :
Vous pouvez étrangler un tuyau avec pv -qL
(ou cstream -t
fournit des fonctionnalités similaires)
tar -cf - . | pv -q -L 8192 | tar -C /your/usb -xvf -
-q
supprime les rapports de progression stderr.
Le -L
la limite est en octets.
En savoir plus sur le --rate-limit/-L
drapeau du 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.
Cette réponse pointait à l'origine vers throttle
mais ce projet n'est plus disponible et a donc échappé à certains systèmes de paquets.