rsyncの使い方を知ったので同期する目的で使ってみることにした

rsyncを利用して、

・webコンテンツ(wwwサーバ)

・メールアカウント情報(メールサーバ)

・メール(メールサーバ)

・クライアント提供用DB(DBサーバ)

のバックアップを障害対策用サーバに行う。

それぞれ、別々にサービスが稼動しているので、リモートでバックアップを行う。

【WWWサーバ】

・バックアップ対象

/home/

/etc/httpd/※

/etc/vsftpd/※

/etc/passwd※

/etc/shadow※

/etc/group※

/etc/gshadow※

で「※ファイル」は同期してしまうとダメなことは検証していてわかった。

理由は、例えば「clamav」ユーザアカウントが、その他同期するサーバとアカウントIDやグループIDが違っているからだ。

実際そのような趣旨のエラーが返ってきた。

今からでも統一できるんかな。既にガンガンに稼動してしまっている都合上、怖くてできない・・・

あと、http.confなどの設定ファイルは、server adminなど、障害対策用の設定にしないといけないので、これもそのまま同期してしまうとまずい。

しかし、検証用のテストサーバも構築中でまだそこまでやる時間がない。

なので、「※ファイル」は同期はせずに、コピーで一時対応することにする。その他サーバについても同じ扱いにする。

で、肝心の同期コマンドは、

# rsync -av -e ssh /home/ root@障害対策用サーバのIPまたはFQDN:/home/

で、パスワード聞かれるんで、rootのパスワード入力。で、同期される。

【メールサーバ】

・バックアップ対象

/var/lib/pgsql/

/etc/postfix/※

/etc/authlib/

# rsync -av -e ssh /var/lib/pgsql/ root@障害対策用サーバのIPまたはFQDN:/var/lib/pgsql/

# rsync -av -e ssh /etc/authlib/ root@障害対策用サーバのIPまたはFQDN:/etc/authlib/

【DBサーバ】

・バックアップ対象

/var/lib/mysql/

/var/lib/pgsql/

# rsync -av -e ssh /var/lib/mysql/ root@障害対策用サーバのIPまたはFQDN:/var/lib/mysql/

# rsync -av -e ssh /var/lib/pgsql/ root@障害対策用サーバのIPまたはFQDN:/var/lib/pgsql/

で、とりあえずやってみよう。

というか「※」については、rsyncコマンドのオプションの

-o オーナー情報を維持したまま同期

-g グループ情報を維持したまま同期

を省けば解決するんじゃないかと考えているんだけど、試してないから怖い・・・

っていうか「※」以外のものについても本当に同期して良いものか、見直しが必要なんじゃないかと不安になってきた。

さっさとテストサーバを構築して検証しようっと。

著者:bouya Imamura