cwRsync (Cygwin + Rsync)によるUNCパス使用のバックアップ方法(てきとう・・・)
RsyncはLinux等を使っている人ではお馴染みのファイル同期ツールです。
これをWin上でうまく使えないかなぁと思い調べてみました。
・・・海外のサイトで cwRsync を発見しました。
ダウンロードの仕方は、左メニューの「ITeF!x」-> 「cwRsync 1.2.5 (1MB)」(04.09.29現在)をクリックします。 cwRsync_1.2.5_Installer.zip というファイルがダウンロードされるので解凍します。中から exeファイルがでてくるので、これを実行してインストールします。
CwRsyncをインストールしますか?
同様にRsync Serverをインストールしたいと思いますか?
Rsync Serverのインストールとは、簡単に言うとサービスに登録するキットをインストールしてサービス登録するか?って事です。(だと思います)
「はい」を選ぶと、リソースキットについてくる SRVANY.EXE がインストールされ、サービスに登録されます。(NT系OSの2000,XP,2003)
インストール先のパスを指定する
インストール先のパスは、データを保存するドライブと同一の場所の方がいいと思います。たぶん。
ここで注意が必要なのは、「サービスをどのアカウントで動かすか」です。サービス登録しないで直接Rsyncを実行する場合は関係ありませんし、ネットワーク経由じゃ使わないよって人は飛ばしてよんでください。
//——– (ネットワーク経由で使用する人)
ネットワーク経由でファイルをコピーする人なら経験があると思いますが、他のサーバーにアクセスする際に、IDとPasswordが聞かれると思います。(ドメインに入っている場合はでてきません。)
これは、Workgroupで使用しているとでてくるのですが、何故IDとパスを聞かれるのか。ネットワークにアクセスする際に、Windowsはローカルアカウントの情報を相手先のサーバーに送ります。ログインする際に administrator で Pass というアカウントでログインしていたら、相手先にこの情報を送って認証しようとします。相手先もこのアカウントがあればいいのですが、これが食い違ってしまうと先程話したように、IDとPassが聞かれてしまいます。
話が脱線しましたが、Rsyncをサービスとして動作させ、かつUNCパス等を使って他サーバにコピー・他サーバからコピーする場合、先程のインストール画面の「Account Name」と「Password」は相手先・ローカルの共通アカウントを入力してください。(サービスをadministratorアカウントで動かすのもどうかと思いますが)
//——– (ここまで)
データの保存先は、その名の通りです。バッチファイル等を使う場合には、あんまり気にしなくていいです。
ファイルのコピー中
これでインストールが完了です。
今回はバッチファイルを用いてバックアップしてみたいと思います。
構成は以下のような感じ。
データー保存サーバからコンテンツサーバにアクセスして、データを取得しデーター保存サーバに保存という形式です。通常逆じゃねーの?と思う人はぐーで殴ります。
めんどくさいので、Rsyncをインストールしたフォルダに バッチファイルを書いてしまいました。
rsync.exe -avz --delete //192.168.0.1/c$/contents/ ./backup/
こんな感じ。
オプションの説明は後にして後ろのパスから説明します。
コピー元は 192.168.0.1 の Cドライブにある Contents フォルダ
コピー先は 192.168.0.2 の Rsyncをインストールしたフォルダ以下の backup フォルダ
です。気を付ける事は、¥ ではなくて / でやる事。¥¥192.168.0.1¥c$¥contents なんて書くと失敗します。
更にコピー先を他ドライブにしたくて d: とか d$とか書くとエラーが表示されコピーできません。
めんどくさくても、 //192.168.0.2/d$/backup/ というように記載してください。
共有フォルダからコピーしたい場合は、//192.168.0.1/shard/ と記載します。というより、普通はこういう風に書きますね(笑) c$とかは一般的じゃないです。はい。
オプションはGoogleさんあたりで調べてください。Rsyncとまったく同じオプションが利用できます。
ちなみに、上記例文の -avr –delete は以下の通りです。
-a ディレクトリ内に含まれる全てのファイル、/ディレクトリを、シンボリックリンク、パーミッション属性、グループ属性、所有者属性、タイムスタンプを保持したまま同期
-v バックアップ時にバックアップしているファイル名を表示する
-z データーを圧縮して転送する
–delete バックアップ元で削除されたファイルはバックアップ先でも削除する
となっています。
後はこのバッチファイルをタスクで回すなりすれば良いかと(超適当)
そういえば、サービス登録させたはずですが最初は「手動」になっています。「自動」にすれば開始されますが・・・めんどくさいので割愛。。
このへんも linuxでいう cron使用する際の設定と同一なのでそのへんを参照してください。。
*追記
オプションのdeleteはハイフン2つ必要です。表示だとなんかくっついちゃってますね。