rsyncを用いたミラーリング


Last update: 2005/10/14 by Takatama

epftpサーバで利用している,rsyncによるミラーリングについての解説.


rsyncとは

rsyncを用いるとローカル及びネットワーク越しにデータをバックアップすることができます.fmirrorと比べ,動作は軽快で設定も簡単です.

差分ミラーリングも容易でネットワークへの負荷が小さいので,rsyncサーバが用意されている場合には,出来る限りrsyncを用いたミラーリングを行うべきです.

方針

  • rsyncのインストール(別ページで解説済み)
  • ミラーリング設定が書かれたシェルスクリプトの作成
  • cronへのシェルスクリプトの登録

ミラーリング設定が書かれたシェルスクリプトの作成

下は, rsync://mirror.hogehogehoge.net (←架空のサーバです)から cygwinディレクトリ を/home/ftp/.hd05/cygwin ディレクトリにミラーリングするためのシェルスクリプトです.

#!/bin/sh
#mirror target: cygwin
# 2005/07/05 takatama

rsync -avz rsync://mirror.hogehogehoge.net/cygwin /home/ftp/.hd05/cygwin/

2行目,3行目は単なるコメントです.何をするためのスクリプトなのか,すぐに分かるようにしておきましょう.

基本的な構文は

rsync [オプション] [ミラーリング対象] [ミラーリング先]

です.

オプションについての詳細はMediaweb-rsyncコマンドの使い方を参考にするといいでしょう.

今回用いたオプション(a,v,z)について,上記ページから引用しておきます.

a:アーカイブモード。上記のオプションのうち rlptgoD を指定します。ディレクトリ内に含まれる全てのファイル、/ディレクトリを、シンボリックリンク、パーミッション属性、グループ属性、所有者属性、タイムスタンプを保持したまま同期。

v:冗長モード。バックアップ時にバックアップしているファイル名を表示する

z:データーを圧縮して転送する

上記の内容が書かれたシェルスクリプトを適当な名前で保存(今回はcygwin.rsmとして,/etc/rsync_mirroringに保存.サフィックスのrsmはRSync Mirroringから.)し,実行ファイルとして扱えるようにパーミッションを切ります.

chmod 755 /etc/rsync_mirroring/cygwin.rsm

cronへのシェルスクリプトの登録

前節で作成したシェルスクリプトを cron に登録し,定期的にミラーリングを行うようにします.

crontab -e

によってcronの編集エディタを立ち上げ,

12 2 * * 3 /etc/rsync_mirroring/cygwin.rsm

という行を追加すればOKです.

crontabの書式は,左から順に

分 時 日 月 曜日 [実行コマンド]

となっています.上の例では,毎週水曜日の午前2時12分にシェルスクリプトが実行されます.


[back] [top]