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でリモートにコピーする場合も、この転送速度によって、ネットワークの使用帯域を抑えることができます。
コメント