rsyncコマンドでファイルやディレクトリの同期を行う

rsyncコマンドでファイルやディレクトリの同期を行う サーバー

サーバのデータをバックアップしたい。データの同期をしたい。差分だけ同期したい。そんなときはrsyncコマンドが便利です。

2度目以降の転送は差分同期により高速に転送できます。

rsyncコマンドの基本的な使い方

rsync [オプション] 同期元 同期先

【※ポイント】
同期元のディレクトリに / を付けるか付けないかで動作が変わります。

▼fromディレクトリの中身をtoディレクトリ内に転送して同期します。

▼fromディレクトリをtoディレクトリ内に転送して同期します。(同期先に/dir/to/fromというディレクトリが作成されます。)

rsyncコマンドのオプション

オプションは次の通りです。

-a パーミッションやグループなどを保持したまま同期します。
-h 表示される情報に単位をつけます。
-l シンボリックリンクをそのままコピーします。
(ターゲットの指定はそのまま)
-n 実際の同期はせずに実行時の動作を表示します。(DryRun)
-r コピー元のディレクトリを再帰的に同期します。
-u 追加されたファイルだけをコピーします。
-v 処理中のファイル名を表示します。
-z データを圧縮して転送します。
-e “シェル名” リモートシェルを実行します。(-pでポート番号指定可能)
例:-e “ssh -p 2222”
-H ハードリンクをコピーします。
–bwlimit 転送速度の上限を設定して帯域制限します。(単位:kB)
–compress データを圧縮して転送します。
–checksum チェックサムで変更の有無をチェックします。
–delete コピー元で削除されたファイルをコピー先で削除します。
–dry-run 実際の同期はせずに実行時の動作を表示します。(DryRun)
–exclude=PATTERN パターン一致するファイルの同期を除外します。
–exclude-from=FILE ファイルに記述されたパターンと一致するファイルを除外します。
–existing 更新されたファイルのみ同期する。(追加ファイルは無視)
–include=PATTERN パターン一致するファイルを除外しません。
–include=-from=FILE ファイルに記述されたパターンと一致するファイルを除外しません。
–timeout=TIME タイムアウトを設定します。(単位:秒)

別サーバーへの同期時のユーザ指定

同期元・同期先のディレクトリの前に ユーザ名@ホスト名: を付けると別サーバーに指定したユーザーで接続して同期します。

【例】ローカルの/tmp/testuser/public_html/ を、exsample.comサーバーにtestuserでSSH(ポート2222)で接続して/home/testuser/public_html/に同期する。

rsyncコマンドの利用例

▼ローカルの/tmp/testuser/public_html/ を、exsample.comサーバーにtestuserでSSH(ポート2222)で接続して/home/testuser/public_html/に同期するテストを行う。(DryRun)

▼ローカルの/tmp/testuser/public_html/ を、exsample.comサーバーにtestuserでSSH(ポート2222)で接続して/home/testuser/public_html/に完全に同期する。(削除も対象)

▼exsample.comサーバーにtestuserでSSH(ポート2222)で接続して/home/testuser/public_html/をローカルの/tmp/testuser/backup/に同期する。

こんな感じで様々なオプションを利用して同期ができます。

サーバのメンテナンスやバックアップ時にrsyncコマンドを利用しましょう。

タイトルとURLをコピーしました