PCに保存したデータは、HDDの障害などでいとも簡単に失われてしまうことが多く、日ごろからのバックアップは非常に重要です。
ファイルのバックアップについては、多数のユーティリティが提供されていますが、UNIX環境では「rsync」と呼ばれる非常に強力なバックアップツールが利用可能です。
このページでは、この「rsync」の利用方法について説明します。
「rsync」はデフォルトでシステムにインストールされていませんので、別途システムにインストールする必要があります。
インストールはportsを利用して行います。
portsの取得および展開方法については、「最新のportsを取得して展開する」を参照してください。
portsの展開が完了した後、下記手順で「rsync」をmakeし、インストールします。
$ /usr/ports/net/rsync $ make config-recursive $ make install clean
次に、rsyncを使った簡単なバックアップの方法について説明します。
まずはじめに、同一マシン内でのファイルのミラーリングを試してみます。
rsyncは転送元と転送先の差分を計算し、ファイルの変更部分および増分のみを転送するため、2回目以降のバックアップはより高速に実行されます。
$ rsync -av --delete /usr/ports /home/work/
上記の例では、「/usr/ports」の内容を「/home/work/」下に作成された「ports」ディレクトリ下にミラーリングします。
「--delete」の指定によって、転送元に存在しないファイルはすべて削除されますので注意してください。
次に、SSH経由でリモートホストに接続し、そこに存在するファイルをローカルにミラーリングしてみます。
$ rsync -av --delete -e "ssh -p 2222" hogehoge@192.168.16.1:/usr/ports /home/work/
上記の例では、IPアドレスが「192.168.16.1」のホストの「2222」番ポートにSSHで接続し、ユーザ「hogehoge」としてログインを試みます。
パスワードの入力後、接続先のホストの「/usr/ports」の内容を、ローカルの「/home/work/」下に作成された「ports」ディレクトリ下にミラーリングします。
このとき注意しなくてはいけないのは、リモートホストのファイルはユーザ「hogehoge」によってアクセスされるため、「hogehoge」がアクセスする権限のないファイルについてはミラーリングされない点です。
そういった意味では、いまいち使い勝手がよくないかもしれません。
ここまで、rsyncをスタンドアロンで利用する方法について説明してきましたが、rsyncの真骨頂はrsyncをサーバとして動作させたときに発揮されます。
ここでは、rsyncをサーバとして動作させて利用する方法について説明します。
まずはじめに、rsyncをサーバとして動作させた際の設定ファイルとなる「rsyncd.conf」を編集します。
FreeBSDにおいて、rsyncをportsから構築すると、この設定ファイルは「/usr/local/etc/rsyncd.conf」に格納されますので、このファイルを以下のように編集します。
pid file = /var/run/rsyncd.pid uid = root gid = wheel max connections = 4 syslog facility = local5 [ports] path = /usr/ports comment = ports directory read only = yes
上記はrsyncを動作させるのに必要な最低限の設定です。
設定ファイルのフォーマットは、sambaの設定ファイルである「smb.conf」に非常に良く似ているので、分かりやすいと思います。
「uid = root」および「gid = wheel」は、バックアップするファイルを読みに行く際にどのユーザ権限で処理を行うかの設定です。
また、「[ports]」の箇所はモジュールと呼ばれ、「path = /usr/ports」で設定されたディレクトリを呼び出すためにシンボルとなる部分になります。
上記の設定では、このディレクトリに対し「read only = yes」の設定によって、rsyncクライアントからの読み込みのみを許可しています。
rsyncはそれ単独でデーモンとして起動させることもできますが、通常はinetdやtcpserver経由で利用することが多いようです。
ここでは、inetd経由でrsyncを起動させるようにします。
「/etc/inetd.conf」に以下の記述を追加してください。
rsync stream tcp nowait root /usr/local/bin/rsync rsync --daemon
設定完了後、以下のようにしてinetdを再起動させてください。
$ /etc/rc.d/inetd restart
上記の設定によって、rsyncはクライアントからTCP 873番ポートにアクセスがあると、inetd経由で起動されます。
クライアントのマシンで以下のようにすることにより、rsyncd経由でファイルをミラーリングすることが出来ます。
$ rsync -av --delete 192.168.16.1::ports /work
上記の例では、rsyncdが動作しているIPアドレス「192.168.16.1」のサーバに対し、「ports」のモジュール名で指定されたディレクトリの内容を、ローカルの「/work」以下のディレクトリにミラーリングします。
一般的に、バックアップするサーバが能動的に動作してコピーするケースが多く、こういったケースではコピー元のマシンにおいてrsyncdを動作させることになりますが、その逆も可能です。
ケースによって使い分けてください。
・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。
まだ評価がありません |
表示できるメッセージはありません。