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 packages.
Au lieu de cp -a /foo /bar
vous pouvez également utiliser rsync
et limitez la bande passante selon vos besoins.
A partir du rsync
le manuel :
--bwlimit=KBPS
limiter la bande passante d'E/S ; Ko par seconde
Ainsi, la commande actuall, montrant également la progression, ressemblerait à ceci :
rsync -av --bwlimit=100 --progress /foo /bar
Je suppose que vous essayez de ne pas perturber d'autres activités. Les versions récentes de Linux incluent ionice
ce qui vous permet de contrôler la planification des IO.
En plus d'autoriser diverses priorités, il existe une option supplémentaire pour limiter les E/S aux moments où le disque est autrement inactif. La commande man ionice
affichera la documentation.
Essayez de copier le fichier à l'aide d'une commande telle que :
ionice -c 3 cp largefile /new/directory
Si les deux répertoires se trouvent sur le même appareil, vous constaterez peut-être que la liaison du fichier fait ce que vous voulez. Si vous copiez à des fins de sauvegarde, n'utilisez pas cette option. ln
est extrêmement rapide car le fichier lui-même n'est pas copié. Essayez :
ln largefile /new/directory
Ou si vous souhaitez simplement y accéder à partir d'un répertoire sur un autre appareil, essayez :
ln -s largefile /new/directory