rsyncコマンドで基本動作と–checksumオプションの動作を理解する

rsyncコマンドで基本動作と–checksumオプションの動作を理解する

rsyncコマンドはファイルやディレクトリを宛先にアップロードし、同期元と同期先で同期することが可能です。
ファイル転送はscp等も候補がありますがrsyncは差分があったもののみ同期することも出来ます。
また、同期先はローカルだけでなくリモート相手に対しても可能なため大変利便性が高いです。

rsyncの書式と基本動作

まず、書式は以下の通りです。

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

具体例を挙げましょう。

同期元に/home/test.txt
同期先を/home/task/

とした場合、コマンドはこのようになります。

rsync /home/test.txt /home/task/

実際に叩いてみることにします。
初期状態は/home/task配下は空です。

実行すると

/home/task配下にtest.txtが作成されました。
これは/home配下にあったtest.txtが/home/task配下にアップロードされたことを意味しています。

さて、現在test.txtは中身がない空のファイルなのですが、同期元のtest.txtを編集し、再度rsyncを実行してみましょう。

中身を確認し編集。

rsyncを実行。

すると、空だった同期先のtest.txtの中身が同期元のtest.txtと同じになっているので同期が出来ていることを意味しています。

以上、当たり前のことを丁寧に追っていきました。
次にオプションを用いて動作を見ていきます。

が、各オプションの詳細はググれば出てきますので割愛します。
今回確認したいことは、

-c(–checksum)    :チェックサムで変更の有無をチェックする

です。
–checksumは同期元のファイルの中身に変更があれば同期しますよ。と言っています。

–checksumの動作確認

①差分無しの場合
現在、test.txtは差分がない状態になっています。
よってこのまま–checksumオプションを付与して実行してみます。

唐突ですが、コマンド実行時の詳細を確認するため-avのオプションを付与しました。

sending ~をみてください。
ファイル名が書かれていません。
つまり、同期元と同期先のファイルに差分がないため同期していないことを意味しています。

②差分有りの場合
同期元のファイルを編集した後にrsyncを実行します。

今度はsending ~にtest.txtが出力されました。
つまり、差分があったため同期したということになります。

ITカテゴリの最新記事

%d人のブロガーが「いいね」をつけました。
TOP