金のかからないバックアップ

rsync-2.4.5 & ssh-1.2.27

FreeBSD 3.5.1-RELEASE takamura@itoh.co.jp Aug.30,2000

バックアップ元計算機・バックアップ先計算機の両方にインストールしておきます。

tar zxvf ssh-1.2.27.tar.gz
cd ssh-1.2.27

./configure --without-idea --without-x --with-libwrap
make
make install

/etc/sshd_config
の中のPermitRootLogin は no にしておきます。

tar zxvf rsync-2.4.5.tar.gz
cd rsync-2.4.5
./configure
make
make install

【バックアップ先】
sshdで接続するユーザになって
ssh-keygen
をして鍵を作っておきます。(パスフレーズを入力)

さっきmakeしたsshdはlibwrap(tcp_wrapper)経由でipアドレスによる接続制限を有効
にしましたので
/etc/hosts.allow
に
sshd: 127.0.0.1 localhost 192.168.0.0/255.255.255.0 : allow
などと付け加えておきます。

その後
sshd
とやるだけでsshでの接続を待ち受けしててくれます。inetdから起動する方法も
ありますが、デーモンとして待っていてくれた方が安心です。

早速自分自身へ接続テスト。
ssh -l takamura copy-moto.itoh.co.jp
などと打って接続できればOKです。

起動時にsshdが走るように
/usr/local/etc/rc.d/sshd.sh

#! /bin/sh

if [ -x /usr/local/sbin/sshd ]; then
        /usr/local/sbin/sshd
fi

echo ' SSHd Started ';

とでも書いて
chmod 700 sshd.sh
しておけばよいでしょう。


【バックアップ元】
sshdで接続するユーザになって
ssh-keygen
をして鍵を作ります。(パスフレーズを入力)
~/.ssh 以下に
identity.pub
ができあがっています。
これをバックアップ先の計算機の
~/.ssh 以下に
authorized_keys
と言う名前にしてscpします。もちろんフロッピなどで移動しても良いですが、
絶対暗号化されていないftpなどをしてはいけません。

コピー先(バックアップ先)で
chmod 600 authorized_keys
しておくことを忘れずに。

ターゲットにssh(slogin)してみます。パスワードが聞かれずにlogin成功できた
らOKです。

【いよいよバックアップ】
自動バックアップをとる前に手動でテストします。

ポリシーとしては以下の通り。
・【元】のものを【先】へコピー(当たり前)
・【元】のファイルの変更があったものだけの差分を【先】へコピー
・【元】で削除されたものは【先】でも削除してしまう。
・コピーするファイルはsshで暗号化転送を行う。
・cronで自動バックアップをさせる。
・muleで作られた~で終わるファイルはバックアップしない。

バックアップ元の計算機で
rsync -auvvz -e /usr/local/bin/ssh --exclude '*~' --delete /usr/local/apache \
USERNAME@copy-saki.itoh.co.jp:/usr/local

(これは/usr/local/apacheをバックアップする例です。)

とやればファイルリストを作り暗号化コピーが始まります。
つつがなく処理が終われば、次にcrontabに


5 0 * * * USERNAME /usr/local/bin/rsync -auvvz -e /usr/local/bin/ssh \
--exclude '*~' --delete /usr/local/apache \
USERNAME@copy-saki.itoh.co.jp:/usr/local > /dev/null 2>&1

とでもしておいてcronにkill -HUPして活を入れ直せばお終いです。

いとうのホームへ
高村のホームへ