Pomocí pv -qL
můžete potrubí přiškrtit (nebo cstream -t
poskytuje podobnou funkci)
tar -cf - . | pv -q -L 8192 | tar -C /your/usb -xvf -
-q
odstraní hlášení průběhu stderr.
-L
limit je v bytech.
Více o --rate-limit/-L
příznak z 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.
Tato odpověď původně odkazovala na throttle
ale tento projekt již není dostupný, takže vypadl z některých balíčků.
Místo cp -a /foo /bar
můžete také použít rsync
a omezte šířku pásma, jak potřebujete.
Z rsync
manuál:
--bwlimit=KBPS
omezení I/O šířky pásma; kB za sekundu
Takže skutečný příkaz, který také ukazuje průběh, by vypadal takto:
rsync -av --bwlimit=100 --progress /foo /bar
Předpokládám, že se snažíte nenarušit jinou činnost. Nejnovější verze Linuxu zahrnují ionice
což vám umožňuje řídit plánování IO.
Kromě povolení různých priorit existuje další možnost, jak omezit IO na doby, kdy je disk jinak nečinný. Příkaz man ionice
zobrazí dokumentaci.
Zkuste soubor zkopírovat pomocí příkazu jako:
ionice -c 3 cp largefile /new/directory
Pokud jsou dva adresáře na stejném zařízení, můžete zjistit, že propojení souboru dělá to, co chcete. Pokud kopírujete pro účely zálohování, tuto možnost nepoužívejte. ln
je extrémně rychlý, protože samotný soubor se nekopíruje. Zkuste:
ln largefile /new/directory
Nebo pokud k němu chcete přistupovat z adresáře na jiném zařízení, zkuste:
ln -s largefile /new/directory