リモートマシンとローカルマシン、あるいはリモートマシン同士でファイルやディレクトリを同期する際に使用する Linux コマンドです。
コマンド
コマンドの基本は、以下のような形式になります。
$ rsync [オプション] 同期元 同期先
オプション
オプション | 説明 |
-a | オプション -rlptgoD と同じ意味となり、ディレクトリを再帰的に、オーナー・グループ・パーミッション・タイムスタンプ情報を保持したまま同期します。 |
-g | グループ情報を保持したまま同期します。 |
-l | シンボリックリンク情報を保持したまま同期します。 |
-o | オーナー情報を保持したまま同期します。 |
-p | パーミッション情報を保持したまま同期します。 |
-r | ディレクトリを再帰的に同期します。 |
-t | タイムスタンプ情報を保持したまま同期します。 |
-u | 同期元と同期先を比較し、追加、更新されたファイル、ディレクトリのみを同期します。 |
-v | 同期中のファイル名やバイト数などの情報を表示します。 |
-z | 通信を圧縮します。 |
-n | –dry-run となり、実際の処理は実行されず、テストモードで実行することができます。 |
-4 | IPv4を使用します。 |
-6 | IPv6を使用します。 |
–delete | 同期元で削除されたファイルを同期先でも削除します。 |
–exclude | パターンに一致するディレクトリやファイルを除外します。 |
–include | パターンに一致するディレクトリやファイルのみ対象にします。 ※–excludeと併用した場合に有効となります。 |
コマンド早見表
・ローカルのディレクトリ間で同期
$ rsync -av dir/ backup/
・差分のみを同期
-u オプションを指定します。
$ rsync -avu dir/ backup/
・テストモードで実行
-n オプションを指定します。
$ rsync -avn dir/ backup/
・ローカルディレクトリをリモートディレクトリへ同期
$ rsync -auvz dir/ user@server.com:/home/backup/
・リモートディレクトリをローカルへ同期
$ rsync -auvz user@server.com:/home/dir/ backup/
・特定のディレクトリを除外
–exclude オプションを指定します。
$ rsync -auvz --exclude='log_dir' dir/ user@server.com:/home/backup/
・特定のファイルのみを同期
–include、–exclude オプションを指定します。
$ rsync -auvz --include="*.php" --exclude="*" dir/ user@server.com:/home/backup/
コメント