サーバに負担をかけずにバックグラウンドでコピー

ALL
スポンサーリンク

Linuxサーバでバックアップ等でファイルコピーしたいことがあります。
ところが、大量のファイルや、サイズの大きなファイルのファイルコピーを開始すると、ディスクアクセスがガリガリと発生して、サーバ上の他のプロセスの動作が遅くなってしまいます。
そこで、サーバに負担をかけずにコピーする方法を紹介します。

通常ファイルコピーには cpコマンドを使用しますが、ここでは rsync というコマンドを使用します。
rsync はバックアップ用途でよく用いられますが、この rsync にはファイルの転送速度を指定できるオプションがあります。
転送速度を指定することで、サーバに負担をかけないようにファイルコピーできます。

使用方法は、次のように –bwlimit オプションでファイルの転送速度を指定します。
単位は KBytes です。

rsync --bwlimit=XXX コピー元 コピー先

ディレクトリも含めてコピーする場合には、-rオプションを付けます。

rsync -r --bwlimit=XXX コピー元 コピー先

例えば下記例では、source.zip を dest.zip に 秒間100KBytes でコピーします。
source.zip が 100MB の場合、およそ 1000秒かけてコピーします。

rsync --bwlimit=100 source.zip dest.zip

なお、rsyncでリモートにコピーする場合も、この転送速度によって、ネットワークの使用帯域を抑えることができます。

参考

rsync
rsysncコマンドで帯域制限。bwlimitオプション。 | 田舎に住みたいエンジニアの日記

コメント