質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

同期

複数のディレクトリに存在するファイルを更新した場合に、すべてのファイルにも更新が行われる事、又は、同じ記憶領域に同時にアクセスして内容の整合性が失われてしまう事をを防ぐ制御などを同期と呼びます。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Q&A

解決済

2回答

6654閲覧

仮想環境上でlsyncd・rsyncdを利用した同期について

ishii-shintaro

総合スコア13

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

同期

複数のディレクトリに存在するファイルを更新した場合に、すべてのファイルにも更新が行われる事、又は、同じ記憶領域に同時にアクセスして内容の整合性が失われてしまう事をを防ぐ制御などを同期と呼びます。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

0グッド

0クリップ

投稿2016/07/30 06:00

[環境]
AWS
[OS]
ServerA:Cent7(Master)
ServerB:Cent7(Slave)

上記のA・B間でファイルの同期を取ろうと思っています。
ServerAの設定は以下のようにしています。


</etc/lsyncd.conf>
settings = {
logfile = "/var/log/lsyncd/lsyncd.log",
statusFile = "/tmp/lsyncd.stat",
statusIntervall = 1,
nodaemon = false,
delay = 2
}
sync{
default.rsync,
source="/tmp/test/",
target="user1@10.168.124.16:/tmp/test/",
rsyncOps = "-auz"
}


ServerBの設定は以下のようになっています。


</etc/rsyncd.conf>
uid = user1
gid = user1
read only = no
log file = /var/log/rsyncd.log
port = 873

[hoge]
path = /tmp/test/
hosts allow = localhost 10.168.123.20
read only = false


</etc/xinetd.d>
service rsync
{
disable = no
flags = IPv4
socket_type = stream
user = root
wait = no
server = /usr/bin/rsync
server_args = --daemon --config=/etc/rsyncd.conf
only_from = 10.168.123.20
log_on_failure += USERID
}

上記の設定でServerAではlsyncdをスタートし、ServerBではxinetdで動かし所、
ServerA側のログに以下のようなエラーが出力され、同期が行われませんでした。


[ログ]
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(605) [sender=3.0.9]
Sat Jul 30 05:36:38 2016 Normal: Finished a list = 12


ちなみにですが、ServerAからrsyncコマンドを直に実行した場合、
ServerBにファイルの同期がとられることは確認しており、
ServerB側の873ポートは既にあけている状態となっています。

原因等分かる方がいらっしゃいましたら、
教えて頂けないでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

flied_onion

2016/07/30 09:46

ServerBの/var/log/secureになにかログは出ていますか? root以外で実行させようとしているようなので、鍵関係があやしいですかね。(コマンドを直に実行したユーザーはuser1ですか?) まずは検証にroot-rootで構築みるのもいいと思います。
guest

回答2

0

本件についての原因と解決方法は以下のような形となりました。

原因:SELinuxの設定が「Enforcing」になっていた。
解決策:設定内容を「Permissive」に変更。

上記の設定変更を行う事で、同期をとることが出来ました。
ありがとうございました。

投稿2016/08/05 01:46

ishii-shintaro

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

rsync は ssh,rsh 経由で行なう方法と、rsyncデーモン(873番ポート)で行なう方法の 2通りあります。
lsyncd.conf の設定で、sync { default.rsyncssh, ... } ならば前者、sync { default.rsync, ... } ならば後者です。
ただし、後者でも、target の書き方によっては ssh 経由となるようです。

rsyncデーモン(873番ポート)を使う場合

target の書式を target="user1@10.168.124.16::hoge" (コロン 2つ)
または、target="rsync://user1@10.168.124.16/hoge" とする必要があります。
「hoge」 は ServerB の rsyncd.conf で設定したもの。

また、rsyncOps は lsyncd-2.1.5 では古い書式と見なされエラーとなりました。
sync {} 設定は以下のようにするといいと思います。

sync { default.rsync, source="/tmp/test/", target="user1@10.168.124.16::hoge", rsync = { archive = true, update = true, compress = true, }, delete = false, }

Default: delete = true

この場合、経路は暗号化されません。

ssh経由の場合

ご質問の target 設定の場合、ssh 経由となります。

ログのエラーメッセージを見ると、SSH の認証まわりのエラーのように見えますが、こちらの環境では再現することができませんでした。
コマンドでは rsync が成功しているとのことですので、コマンドを実行するユーザーと、lsyncd を動かしているユーザーが同じであればエラーは出ないと思うのですが ...

この場合、ServerB では sshd が稼働して、rsync コマンドが実行できればよくて、xinetd, rsyncd.conf は必要ありません。

投稿2016/08/01 16:19

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ishii-shintaro

2016/08/05 01:43

コメント遅くなり申し訳ありません。 回答ありがとうございました。 設定を再度確認したところ、SELinuxの設定が原因でした。 エラーとなっていた際はSELinuxの設定が「Enforcing」となっていたのですが、 「Permissive」にすることで、解決できました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問