Backup diff of UNIX/コマンド/クライアント/rsync(No. 2)


  • The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
TITLE:rsync - 高速なバックアップ
TITLE:rsync - 差分バックアップ
#navi(UNIX/コマンド)

rsync コマンドはファイルのバックアップを取るのに利用します。
通常の cp とは違いバックアップ元とバックアップ先ファイルの差分だけを送信することで高速なバックアップを行えます。
r が冠するように rlogin や rcp などの r* 系コマンドの1つですが、ローカルでのバックアップコマンドとしても利用できます。

#contentsx

*ローカルで使用する [#udb32cf4]
 rsync -auv --delete --exclude ".svn" [src_dir] [dest_dir]
のように使用します。

ファイルの属性を保存し(-a)、目的地側に新しいファイルがある場合は上書きしない(-u)ようにし、進歩状況の表示(-v)をし、
バックアップ元にないファイルはバックアップ先から削除します(--delete)し、--exclude で指定した文字列にマッチするファイル、ディレクトリを除いて、バックアップを取ります。

注意が必要なのが
 rsync -auv --delete --exclude ".svn" [src_dir]/ [dest_dir]
と
 rsync -auv --delete --exclude ".svn" [src_dir] [dest_dir]
の違いで、前者は
 [src_dir]/
 [src_dir]/file1
 [src_dir]/file2
とファイルがある場合
 [dest_dir]/
 [dest_dir]/file1
 [dest_dir]/file2
のようにバックアップを取るのに対し、後者は
 [dest_dir]/
 [dest_dir]/[src_dir]
 [dest_dir]/[src_dir]/file1
 [dest_dir]/[src_dir]/file2
のようにバックアップをとる点です。--delete をつけていると、この少しの違いが大きな違いになってしまうことがあります。

*リモートで使用する [#z9280855]

リモート先に rsyncd サーバを建てることで差分バックアップ機能を使えます。
最近では他にも ssh との連携もサポートしており、
+ ローカルで起動された rsync は
+ ssh でリモートへ login し
+ リモート側でも rsync を起動する。
+ その後、ローカルの rsync とリモートの rsync とで通信を行い、バックアップを行う。

という仕組みで差分バックアップを行えるようになっています。

(予定地)

#navi(UNIX/コマンド,,footer)

xrea