フィードが格納されたディレクトリの同期(DMZ シナリオ)

2024年4月11日

ID 268321

ローカルホストと DMZ ホストの両方のフィードを同期するには、RSync ユーティリティを使用します。Windows を実行するコンピューター上で Cygwin を使用して、RSync ユーティリティを実行できます。

以下の Linux コマンドはすべて Cygwin を使用して Windows コンピューター上で実行されます。

RSync ユーティリティを Windows コンピューターにインストールするには:

  1. Cygwin ディストリビューションから既定のパッケージのセットをインストールします。
  2. OpenSSH ユーティリティ、OpenSSL ユーティリティ、RSync ユーティリティをインストールします。
  3. DMZ ホスト上で OpenSSH コンポーネントを次のように構成します:
    1. 次のコマンドを root として実行します:

      ssh-host-config

      毎回[Yes]を選択します。重要なポイントは、sshd デーモンをサービスとして実行することです。

    2. 次のコマンドを実行します:

      net start sygsshd

sshd デーモンが自動的に起動します。

ローカルホストで同期を設定するには:

  1. 秘密鍵、および対応する公開鍵を作成します。

    それには、ローカルホスト上で次のコマンドを実行します:

    ssh-keygen -t rsa -q -N '' -f /home/<user>/.ssh/dmz_rsa_key

    <user> の代わりにユーザーログインを指定します。キーはパスワードなしで作成されます。

  2. 次のコマンドを実行して、公開鍵をローカルホストから DMZ ホストにコピーします:

    ssh-copy-id -i /home/<user>/.ssh/dmz_rsa_key <DMZ_user>@<DMZ_host>

    このコマンドを実行すると、<DMZ_user>@<DMZ_host> へのパスワードを要求されます。

  3. ローカルホスト上で次のコマンドを実行して、フィードが格納されたディレクトリの内容の同期をテストします:

    rsync -a --delete-before --delay-updates -e "ssh -i /home/<user>/.ssh/dmz_rsa_key" <DMZ_user>@<DMZ_host>:/<Path_to_feeds>/ /<Path_to_feeds_on_Local>/

    このコマンドの <Path_to_feeds_on_Local> はローカルホスト上の、フィードが格納されたフォルダーへのパス(つまり、%service_dir%/feeds)で、<Path_to_feeds> は DMZ ホスト上の、更新済みフィードが格納されたフォルダーへのパスです。

    同期テストに合格するには、ローカルコンピューター上のフォルダー <Path_to_feeds_on_Local> の内容が、DMZ ホスト上のフォルダー <Path_to_feeds> の内容と同じである必要があります。

Cygwin を使用して Rsync をテストすると、パス内のスペース文字に関する問題が発生する可能性があります。そのため、以下を実行することを推奨します:

  1. DMZ ホストのディレクトリのパスを引用符で囲んでスペース文字をエスケープ処理します("\ ")。
  2. ローカルホストのディレクトリのパスのスペース文字をエスケープ処理します("\ ")。

Cygwin を使用して C:\ ドライブのディレクトリに到達するには、パス /cygdrive/c/ を指定し、その後通常のパス(/cygdrive/c/Users/...)を指定します。

この記事はお役に立ちましたか?
改善できる点がありましたらお聞かせください。
フィードバックをいただき、ありがとうございました。改善に向けて取り組んでまいります。
フィードバックをいただき、ありがとうございました。改善に向けて取り組んでまいります。