Puedes estrangular una tubería con pv -qL
(o cstream -t
proporciona una funcionalidad similar)
tar -cf - . | pv -q -L 8192 | tar -C /your/usb -xvf -
-q
elimina los informes de progreso de stderr.
El -L
el límite es en bytes.
Más sobre el --rate-limit/-L
bandera del 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.
Esta respuesta apuntaba originalmente a throttle
pero ese proyecto ya no está disponible, por lo que se ha escapado de algunos sistemas de paquetes.
En lugar de cp -a /foo /bar
también puedes usar rsync
y limita el ancho de banda según lo necesites.
Desde el rsync
manual de:
--bwlimit=KBPS
limitar el ancho de banda de E/S; KBytes por segundo
Entonces, el comando reall, que también muestra el progreso, se vería así:
rsync -av --bwlimit=100 --progress /foo /bar
Supongo que está tratando de no interrumpir otra actividad. Las versiones recientes de Linux incluyen ionice
que le permite controlar la programación de IO.
Además de permitir varias prioridades, existe una opción adicional para limitar la E/S a momentos en los que el disco está inactivo. El comando man ionice
mostrará la documentación.
Intenta copiar el archivo usando un comando como:
ionice -c 3 cp largefile /new/directory
Si los dos directorios están en el mismo dispositivo, puede encontrar que vincular el archivo hace lo que desea. Si está copiando con fines de copia de seguridad, no utilice esta opción. ln
es extremadamente rápido ya que el archivo en sí no se copia. Prueba:
ln largefile /new/directory
O si solo desea acceder desde un directorio en un dispositivo diferente, intente:
ln -s largefile /new/directory