.
Network / OS => 異なるホスト間でのディレクトリ・ファイル同期 > 4.rsync でWeb公開ディレクトリの同期をとるには
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

rsync でWeb公開ディレクトリの同期をとるには

今回は、後者の ssh を使用して異なるホストのディレクトリの同期を例に説明しています。rsync の利用は cp コマンドのように非常に簡単です。様々な用途に利用できるので知っておいて損はありません。

rsync の基本操作

rsync の構文は
rsync [オプション] [参照元 DIR or file] [同期させる DIR or file]
となります。

mainsrv subsrv はそれぞれの任意のユーザー名です。適宜置き換えて下さい。

メインサーバーから、サブシステムへデータを転送する例です。

[mainsrv@mydomain.com ~] rsync -avz -e ssh /var/httpd subsrv@192.168.1.55:/var/

仮に、メインサーバーでSSHを待ち受け、サブシステムをクライアントとした場合、メインサーバーから、自信の /var を更新する場合は以下のようになります。

[subsrv@mydomain.com ~]$ rsync -avz -e ssh mainsrv@192.168.1.66:/var/httpd /var/

どちらのホストを SSH サーバーとしても同じ事ですが、rsync を実行する側はSSHサービスを起動しておく必要はありません。普段起動していないサブシステムをSSHサーバーとする方が安全です。証明書がなければ接続は行なえませんが、このようにセキュリティ上どちらが適しているか、結果は同じでも考える余地はあります。Rsync の扱いは理解できたと思います。

ヒント

当然ですが rsync を実行するユーザーがファイル、ディレクトリに対して権限をもっている必要があります。また、ssh を実行するユーザーも接続先のディレクトリに対して権限をもっていなければ書き込むことはできません。Web公開ディレクトリの同期を考えた場合、互いの ディレクトリは ユーザーwww のホームディレクトリであるとするなら、 www ユーザー同士で実行させるようにします。

httpd サービス停止後、サブシステムへ同期転送

[ ~] rsync -avz -e ssh /var/httpd subsrv@192.168.1.55:/var/httpd

ネットワークを切り替え、サブシステムでサービス開始

メンテナンス、及び復旧作業終了後、サブシステム httpd 停止

メインシステムからサブシステムの公開ディレクトリを吸い出す
[ ~] rsync -avz -e ssh subsrv@192.168.1.55:/var/httpd /var/httpd

終了後、ネットワーク切替後、メインシステムhttpd 起動

掲示板当、外部からの書き込みが想定される場合は、サービスを一時遮断し同期完了後にネットワークを切り替える必要も出てきます。また、メインシステムに戻す際は、逆に同期を取り直す必要も出てくるかもしれません。

bottom_mark
ページ最上部
ページ最上部 前のページ