Linux|ディレクトリ、ファイルの同期(rsyncコマンド)

rsyncコマンドはファイルやディレクトリのバックアップやミラーリングを効率的に実行することができます。
リモートマシンとの同期が可能、2回目以降は差分のみ同期、削除されたファイルの同期や除外ファイルの指定が可能など便利なコマンドです。

利用方法

rsync [オプション] コピー元 コピー先

※注:コピー元のパスの最後に”/”(スラッシュ)を付けた場合と付けない場合で動作が違います
スラッシュを付けた場合はディレクトリ内のファイルをコピー、スラッシュを付けない場合はディレクトリをコピーとなります。

主なオプション

オプション 機能
–a 「–rlptgoD」と指定したのと同様の効果。
(ディレクトリを再帰的に実行、ソフトリンク・パーミッション・タイムスタンプ・グループ・オーナーデバイス維持)
–e [シェル名] リモートシェルを指定。デフォルトでssh
–z データを圧縮する
–n 実行時の動作だけを表示。テストする時に使用。
–u 追加されたファイルだけをコピー(ファイルがある場合に上書きしない)
––existing 更新されたファイルだけをコピー(追加されたファイルは無視)
––delete 送信側にないファイルを削除。※実行前に-nで動作テスト推奨
––exclude [PATTERN] パターンに一致するファイルを除外
––exclude-from=FILE ファイルに記述されたパターンと一致するファイルを除外
––include=PATTERN パターン一致するファイルを除外しない
-h(––help) ヘルプを表示する

使用例

rsync -az -e ssh –exclude "*.svn" /var/www/htdocs/ 192.168.0.2:/var/www/htdocs 

備考

lsyncd を使うことでリアルタイムで同期させることができるようです

関連リンク