#author("2018-10-10T12:38:31+09:00","default:narushima","narushima")
#contents

*rsyncとは [#u3ebb306]
主にUnix環境における、通信量を最適化するアルゴリズムが搭載されたファイル同期のためのアプリケーションである。~
-[[公式ホームページ:http://rsync.samba.org/]]
-[[rsyncのWikipediaページ:http://ja.wikipedia.org/wiki/Rsync]]~

*Install [#vb2a50ef]
 # 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

*使い方及び設定 [#af5eee77]
rsyncの使い方は基本的にはsshコマンドを通すことで、暗号化した状態でファイルの同期をとることが一般的といえよう。
**バックアップのコマンド [#s1788033]
+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         <- このコマンドで中断プロセスがバックグランド化され再開される。

***拡張子の解説 [#he5c03a1]
|引数|概要|h
|-a|Archiveモード、-rlptgoD のオプション指定と同じ|
|-v|Verboseモード、よりコピー遷移を表示する|
|-z|Compressモード、zlibを利用した圧縮方式で通信データ量を減らす|
|-e ssh|SSHコマンドを通してファイル同期を図る|
|-r|Recursiveモード、再帰指定、指定フォルダ以下も同期|
|-l|copy symlinks as symlinks、シンボリックリンクはシンボリックリンクとしてコピー|
|-p|same as --partial --progress、Partial(部分転送)、Progress(過程表示)の機能と同じ|
|-t|Preserve modification times、元ファイルの時間を保持してコピー|
|-g|Preserve group、元ファイルのグループをそのまま保持してコピー|
|-o|Omit directories from --times、ディレクトリの時間表示は除外|
|-D|Same as --devices --specials、Devices(デバイスも維持 rootのみ)、Specials(特別Fileも維持)|
|--delete|バックアップ元で削除されたファイルは、バックアップ時にバックアップ先でも削除される指定。バックアップ元とバックアップ先が完全に同期するが、一歩間違えるとデータが全部消えるため、運用には注意すること。|

***例 [#a102298f]
/usr/local/libを丸ごとコピー
 # rsync -avz -e "ssh -i /root/.ssh/server.key" root@192.168.0.1:/usr/local/lib/ /usr/local/lib/

*トラブルシューティング [#heeab937]
パーミッションのエラーが無いにも関わらず、Permission denied (13)が出現する場合、一度、SELinuxをOFFにすると解決する。
 # setenforce permissive

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


*afio 関係 [#q30eba56]
 #! /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

*関連リンク [#b762e85e]
[[rsync official page:http://rsync.samba.org/]]~
[[rsync official page日本語訳:http://www.infoscience.co.jp/technical/rsync/]]~