チップス

rsync の使い方


rsync [options] source destination

rsync で注意が必要なところ

$ rsync -a /home/hoge/dir/ /mnt/disk/work/ 
$ rsync -a /home/hoge/dir /mnt/disk/work/"

source 側の "/home/hoge/dir/" と "/home/hoge/dir" で動作が異なります。
最後のスラッシュがない場合、rsyncはそのディレクトリも含めて全体をコピー
最後のスラッシュがある場合、rsyncはディレクトリの中身をコピーするがディレクトリそのものは作られません。

引数 -a は、いくつかの rsyncオプションを結合したもので、再帰コピーとシンボリックリンクコピーの各オプションを含み、グループと所有者の情報を保存します。ハードリンクも保存したい場合はハードリンクオプション ( -H )を追加します。

詳細情報の出力 ( -v )は、rsync実行中の処理について詳細情報が表示されます。 -v よりも -vv とするほうが表示される情報が多くなり、 -vvv とすれば rsync処理に関するすべての情報が表示されます。

rsync のデフォルトでは、オプションを指定しなくても隠しファイルのコピーが行われ、 --exclude=".*/" というオプションで隠しファイルのコピーを除外する事ができます。

--delteオプション
 rsyncを最後に実行した後に削除したローカルファイルを外部システムからも削除されるようにしたい時は --deleteオプションを追加します。

$ rsync -av --delete /home/hoge/dir/ /mnt/disk/backup

リモートにコピーする場合

$ rsync -av --delete /home/hoge/dir/ user@hogehoge.com:dir/

--progressオプション
転送速度やコピーすべき残りファイル数を表示する場合は --progressオプションを使います。

リモートコピーを rsync で行う時に、パスワードをその都度入力したくない時は、 ssh鍵を使ってログインするように rsyncを設定します。
" ssh-keygen - dsa"を使ってssh鍵を生成し、

ssh-copy-id -i .ssh/id_dsa.pub user@hogehoge.com

リコーとホストに公開鍵をコピーします。

帯域を制限してファイルをコピーする

--bwlimitオプション
rsync でリモートコピーする時に、帯域を制限したい時は --bwlimit オプションを使います。

*scp で帯域制限をかけたい時は -l オプションを使います。

$scp -l 100k dump hoge:$PWD/dump2

   チップス