UnixPower on Networking
  http://www.unix-power.net/

 
  Top - Solaris8 - Solaris Rsync



「自動的に効率よく,しかも定期的にバックアップを」ということで,rsyncを使ったバックアップを紹介します。なぜrsyncなのと言われると困るのですが,「簡単,速い,バックアップ先にあるファイルより新しければ更新,同じファイルがあればそのファイルはコピーしない,バックアップ元から削除されたファイルをバックアップ先からも削除など,初心者&怠け者の私にはもってこいの内容だったからです。


必要なソフトを以下からダウンロードします。

http://rsync.samba.org/download.html


まずバックアップ元の方からインストールします。インストールは簡単です。ダウンロードしたファイルを解凍して作業をおこないます。


# tar zxvf rsync-2.5.6.tar.gz
# cd rsync-2.5.6
# ./configure
# make
# make install 


設定ファイルを作成します。/etc/rsyncd.confと/etc/rsyncd.secretsという2つのファイルを作ります。以下サンプルです。


・/etc/rsyncd.conf


pid file = /tmp/rsyncd.pid

syslog facility = local5
read only = yes

[etc]
path=/etc
comment=Etc Directory
uid=root
gid=root
auth users=root
secrets file=/etc/rsyncd.secrets
hosts allow=xxx.xxx.xxx.xxx

[usr]
path=/usr
comment=Usr Directory
uid=root
gid=root
auth users=root
secrets file=/etc/rsyncd.secrets
hosts allow=xxx.xxx.xxx.xxx

[home]
path=/home
comment=Home Directory
uid=root
gid=root
auth users=root
secrets file=/etc/rsyncd.secrets
hosts allow=xxx.xxx.xxx.xxx

[var]
path=/var
comment=Var Directory
uid=root
gid=root
auth users=root
secrets file=/etc/rsyncd.secrets
hosts allow=xxx.xxx.xxx.xxx


・/etc/rsyncd.secrets


root:xxxxxxxx


以上のような感じで設定していきます。この後デーモンとしてrsyncを起動します。


# /usr/local/bin/rsync --daemon


あとはバックアップさきのマシンから以下のコマンドを実行します。


# rsync -avuoz rsync://root@[バックアップ元IP]/[バックアップディレクトリ]/* /バックアップ先ディレクトリ


コマンドをうった後、パスワードを聞かれますので/etc/rsyncd.secretsに記述しているパスワードを入力するとバックアップが始まります。属性等も全て保存された状態ですので便利かと思います。


cronで定期的に自動バックアップを行いたい場合は以下のようなシェルスクリプトを用意してcronに登録しておきます。


#!/bin/sh
PATH=/usr/local/bin

rsync -avuoz --numeric-ids --password-file=/etc/rsyncd.pass --delete \
rsync://root@[バックアップ元IP]/バックアップ元ディレクトリ /バックアップ先ディレクトリ


各オプションについて説明していきます。


-v バックアップ時にバックアップしているファイル名を表示する
-r 指定したディレクトリ以下の各ディレクトリも再帰的にバックアップする
-l シンボリック・リンクをそのままにバックアップする(シンボリック・リンク先の内容をコピーせずにリンクのままコピー)
-H ハード・リンクをそのままにバックアップする
-p パーミッション属性を保存したままバックアップする
-o 所有者属性を保存したままバックアップ(root のみ可能)
-g グループ属性を保存したままバックアップ
-t タイムスタンプを保存したままバックアップ
-D デバイスファイルを保存したままバックアップ(root のみ可能)
-z データーを圧縮して転送する
-u 追加されたファイルだけバックアップする
--delete バックアップ元で削除されたファイルはバックアップ先でも削除する
-e ssh SSHの使用
--password-file パスワードファイルの指定
--existing

更新されたファイルだけをバックアップし、追加されたファイルはバックアップしない

-a 上記のオプションのうち rlptgoD を指定する



 
 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.