Edit
rsyncとは

主にUnix環境における、通信量を最適化するアルゴリズムが搭載されたファイル同期のためのアプリケーションである。

Edit
Install

# cd /usr/local/src
# wget http://rsync.samba.org/ftp/rsync/src/rsync-3.1.1.tar.gz
# tar zxvf rsync-3.1.1.tar.gz
# cd rsync-3.1.1
# ./configure
# make
# make install

Edit
使い方及び設定

rsyncの使い方は基本的にはsshコマンドを通すことで、暗号化した状態でファイルの同期をとることが一般的といえよう。

Edit
バックアップのコマンド

  1. 192.168.0.50 の指定フォルダ(/root/test/)以下を丸々コピーする。コマンドを起動したマシンの/root/test/に複製する。
    # rsync -avz -e ssh 192.168.0.52:/root/test/ /root/test/
    同マシン内
    # rsync -auv /usr/local/apache2/htdocs/ /test/htdocs/
    ※この実行したプロセスをバックグランドに持って行きたいときなどは、以下のコマンドを実行する。
    #<CTRL+Z>    <- これで実行中のプロセスが一時中断され
    # bg         <- このコマンドで中断プロセスがバックグランド化され再開される。

Edit
拡張子の解説

引数概要
-aArchiveモード、-rlptgoD のオプション指定と同じ
-vVerboseモード、よりコピー遷移を表示する
-zCompressモード、zlibを利用した圧縮方式で通信データ量を減らす
-e sshSSHコマンドを通してファイル同期を図る
-rRecursiveモード、再帰指定、指定フォルダ以下も同期
-lcopy symlinks as symlinks、シンボリックリンクはシンボリックリンクとしてコピー
-psame as --partial --progress、Partial(部分転送)、Progress(過程表示)の機能と同じ
-tPreserve modification times、元ファイルの時間を保持してコピー
-gPreserve group、元ファイルのグループをそのまま保持してコピー
-oOmit directories from --times、ディレクトリの時間表示は除外
-DSame as --devices --specials、Devices(デバイスも維持 rootのみ)、Specials(特別Fileも維持)
--deleteバックアップ元で削除されたファイルは、バックアップ時にバックアップ先でも削除される指定。バックアップ元とバックアップ先が完全に同期するが、一歩間違えるとデータが全部消えるため、運用には注意すること。

Edit

/usr/local/libを丸ごとコピー

# rsync -avz -e "ssh -i /root/.ssh/server.key" root@192.168.0.1:/usr/local/lib/ /usr/local/lib/

Edit
トラブルシューティング

パーミッションのエラーが無いにも関わらず、Permission denied (13)が出現する場合、一度、SELinuxをOFFにすると解決する。

# setenforce permissive

Edit
protocol incompatibilityというエラーがでる。

相手先の ~/.bashrcで何か標準出力にechoして、scp & rsync がハンドシェークに混乱し失敗する。よって、.bashrc の echo を >&2 をつけて標準エラーにする。

Edit
afio 関係

#! /bin/sh
 EDKBACKUP="/usr/local/edesk/bin/afio.sh"
 BACKUPDIR="/backup"
 if [ `/bin/date +%w` -eq 0 ]; then
   $EDKBACKUP -d $BACKUPDIR --full >> /var/log/backup 2>&1
 else
   $EDKBACKUP -d $BACKUPDIR >> /var/log/backup 2>&1
 fi

Edit
関連リンク

rsync official page
rsync official page日本語訳