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
を指していました しかし、そのプロジェクトは利用できなくなったため、一部のパッケージシステムから抜け出しました。