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をコピーしました