kyototycoon 他ホストにホットバックアップする

バックアップというのはこんなこともあろうかとのためにやるのでローカルより別のホストに転送しておいた方が良い。ということでrsyncd+バックアップ用のスクリプトをいじって他のホストにそのままホットバックアップしたファイルを転送する方法

バックアップファイルを置くホストにrsyncdを準備する

debianの場合です /etc/rsyncd.confを以下のようにする

uid = root
gid = root
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
[kt_backup]
    comment = rsync server
    path = /backkup/             ※ バックアップ先にしたいディレクトリ
    hosts allow = 192.168.0.0/16
    read only = false

/etc/default/rsyncで以下のようにしておく

RSYNC_ENABLE=true

rsyndが起動するようにしておく

/etc/init.d/rsyncd start
update-rc.d rsync defaults

KTが動いてるサーバのバックアップスクリプトrsyncバージョンにする

/ktbin/dbbackupスクリプトをこんな感じにする

#!/bin/sh
HOST=backup_host ※まあ適当に

srcfile="$1"
destfile="$1.$2"
/bin/ln -s $srcfile $destfile
/usr/bin/rsync -lrptgoDzL "$destfile" "${HOST}::kt_backup/"
/bin/rm -f $destfile

rsyncdでリネームして保存する方法がいまいちわかんなかったからシンボリックリンク作ってその先の実態をコピーする(rsync -Lオプション)ってやったけど、鍵作ってscpの方がいい気がした。