Linuxでコピープロセスを遅くする方法はありますか?
10 GBなどの大きなファイルがあり、別のディレクトリにコピーしたいのですが、フルスピードでコピーしたくありません。 1mb / sの速度でコピーしたいとしますが、それより速くはありません。標準のLinuxcpを使用したい コマンド。
これは可能ですか? (はいの場合、どのように?)
編集 :それで、私が達成しようとしていることに、より多くのコンテキストを追加します。
大きなファイルをUSB経由で(ペンドライブ、USBディスクなどに)コピーすると、ArchLinuxシステムで問題が発生します。 USBバッファキャッシュがいっぱいになると、システムが応答を停止します(マウスが停止しても、散発的にしか移動しません)。コピー操作はまだ進行中ですが、ボックスの100%のリソースが必要です。コピー操作が終了すると、すべてが通常の状態に戻ります。すべてが再び完全に応答します。
ハードウェアエラーかもしれませんが、この問題が発生しているマシンが2台あることはわかっています(どちらもArchLinuxにあり、1つはデスクトップボックス、2つ目はラップトップです)。
これに対する最も簡単で最速の「解決策」(これは「実際の」解決策ではなく、単に醜い「ハック」であることに同意します)は、USBドライブの平均書き込み速度でファイルをコピーすることにより、このバッファーがいっぱいになるのを防ぐことです。私はそれで十分でしょう。
承認された回答:
pv -qLを使用してパイプをスロットルできます (またはcstream -t 同様の機能を提供します)
tar -cf - . | pv -q -L 8192 | tar -C /your/usb -xvf -
-q stderr進捗レポートを削除します。
-L 制限はバイト単位です。
--rate-limit/-Lの詳細 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.
この回答は元々throttleを指していました しかし、そのプロジェクトは利用できなくなったため、一部のパッケージシステムから抜け出しました。