rsyncで同期をかける

| | トラックバック(0)

話は前後しますが、「その後...」で書いた、バックアップというのを詳しく説明しておきます。

「データベースの自動バックアップを、cronで行う」の応用で、データの同期をかけることにしました。
rsync(http://rsync.samba.org/)というツールを用います。scpと似たような機能をもっているのですが、こちらの方が多彩なオプションがあり、データの同期をかけるのに最適です。

rsyncはscpと同様sshを用いたセキュアなファイル転送を行うので、「データベースの自動バックアップを、cronで行う」と同様に、公開鍵の交換を行ってからcronに設定すると、定時のデータ同期が可能です。

わたしは、下記のようなスクリプトで同期をかけるように設定しました。

 

#!/bin/bash

workdir=/root/sync
timestamp=`date +%Y%m%d%H%M`

if mkdir $workdir; then
  echo Work directory : $workdir
else
  exit
fi

rsync -auvz --delete /root/test/ 192.168.1.36:/root/test/ >/root/log/log$timestamp.txt
rm -rf $workdir/
exit


<オプションの説明>(rsyncの日本語訳ページhttp://www.infoscience.co.jp/technical/rsync/index.htmlより抜粋)

-a, --archive -rlptgoD と同じです。再帰的に全ての情報を維持する手っ取り早い方法です。

-u, --update   アップデートのみ許可 (上書き禁止)

-v, --verbose 転送の間の情報を詳しく表示します。デフォルトでは rsync は何も表示しません。単一の -v で、転送されているファイルと転送の終了の概要を表示します。2つの -v フラッグでは、スキップされたファイルと転送終了の情報を表示します。2つ以上の -v は rsync のデバッグの時にだけ使われます。

-z, --compress              受信ファイルを圧縮compress file data
 

--delete 送信側に存在しない、受信側にあるファイルを削除します。転送から除外されたファイルは --delete-excluded を使わない限り削除から除外されます。
 ディレクトリで再帰的に実行されていなければ、このオプションは効果がありません。

あと、おけつに、>/root/log/log$timestamp.txtをつけたら、ログもとれるようになりました。

トラックバック(0)

このブログ記事を参照しているブログ一覧: rsyncで同期をかける

このブログ記事に対するトラックバックURL: http://blog.macplan.com/setcontents/mt-tb.cgi/31