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

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

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

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

同期

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

Q&A

解決済

1回答

2985閲覧

lsyncdとrsyncとsshでファイルの同期をしたいのですが、失敗してしまいます

t4gforce

総合スコア5

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

同期

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

0グッド

0クリップ

投稿2020/08/22 10:17

前提・実現したいこと

Ubuntu 16.04のサーバを2つ立てています。
2つのサーバで鍵の交換をした後、lsyncdとrsyncでsshを使いファイルの同期をしたいのですが失敗してしまいます
どなたかお力添えをお願いいたします。

発生している問題・エラーメッセージ

ファイルが同期されません。

エラーメッセージを確認しようとしたのですが、rsyncのログファイルにエラーメッセージがなく、lsyncdはそもそもログファイルが作成されていません。

# tail -10 /var/log/rsyncd.log 2020/08/22 09:43:45 [14706] rsyncd version 3.1.1 starting, listening on port 873 #ls -l /var/log/ | grep lsyncd #

設定した項目

sshの鍵配送は完了しており、送信サーバーから以下のコマンドで受信サーバーにログインできます。

ssh -i ~/.ssh/id_ed25519 rsync@<受信サーバーのIPアドレス>

送信サーバ側の/etc/rsyncd.confは、以下の通りです。

uid = rsync gid = rsync log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid [share] path=/home/rsync/test hosts allow = <受信サーバのIPアドレス> read only = no

送信サーバの/etc/lsyncd/lsyncd.confは、以下の通りです。

settings { logfile="/var/log/lsyncd.log", statusFile="/var/log/lsyncd/lsyncd.status", insist=1, statusInterval=10 } sync { default.rsyncssh, source="/home/rsync/test/", host="rsync@178.128.123.183", targetdir="/home/rsync/test/", delay=1, delete=true, rsync = { archive = true, rsync_path = "sudo /usr/bin/rsync", rsh = "/usr/bin/ssh -i /home/rsync/.ssh/id_ed25519 -o StrictHostKeyChecking=no" } }

受信サーバの/etc/rsyncd.confは、以下の通りです。

uid = rsync gid = rsync log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid [share] path=/home/rsync/test hosts allow = <送信サーバのIPアドレス> read only = no

試したこと

送信サーバ側で、rsyncとlsyncdを起動しました

# systemctl start rsync # systemctl status rsync ● rsync.service - fast remote file copy program daemon Loaded: loaded (/lib/systemd/system/rsync.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-08-22 09:43:45 UTC; 24min ago Main PID: 14706 (rsync) CGroup: /system.slice/rsync.service mq14706 /usr/bin/rsync --daemon --no-detach Aug 22 09:43:45 ubuntu16 systemd[1]: Started fast remote file copy program daemon. # # systemctl start lsyncd ● lsyncd.service - LSB: lsyncd daemon init script Loaded: loaded (/etc/init.d/lsyncd; bad; vendor preset: enabled) Active: active (exited) since Sat 2020-08-22 03:43:12 UTC; 6h ago Docs: man:systemd-sysv-generator(8) Aug 22 03:43:12 ubuntu16-wowhoneypot systemd[1]: Starting LSB: lsyncd daemon init script... Aug 22 03:43:12 ubuntu16-wowhoneypot systemd[1]: Started LSB: lsyncd daemon init script. Aug 22 09:45:01 ubuntu16-wowhoneypot systemd[1]: Started LSB: lsyncd daemon init script. Aug 22 10:09:28 ubuntu16-wowhoneypot systemd[1]: Started LSB: lsyncd daemon init script.

受信サーバー側で、rsyncを起動しました。

# systemctl restart rsync # systemctl status rsync ● rsync.service - fast remote file copy program daemon Loaded: loaded (/lib/systemd/system/rsync.service; disabled; vendor preset: enabled) Active: active (running) since Sat 2020-08-22 09:50:56 UTC; 2s ago Main PID: 15718 (rsync) Tasks: 1 Memory: 180.0K CPU: 1ms CGroup: /system.slice/rsync.service mq15718 /usr/bin/rsync --daemon --no-detach

その後、送信サーバー側の/home/rsync/test/に適当なファイルを作成しましたが、少し時間を待ってみても受信サーバー側の/home/rsync/test/に反映されません。
エラーメッセージがないので何と調べればよいのか分からず、解決できない状態です。

補足情報(FW/ツールのバージョンなど)

OS : 送受信どちらも、Ubuntu 16.04
lsyncd : Version 2.1.5
rsync : 送受信どちらも、version 3.1.1

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

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

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

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

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

guest

回答1

0

ベストアンサー

default.rsync ではなく、default.rsyncssh なので、送受信とも rsyncd は不要です。

エラーメッセージを確認しようとしたのですが、rsyncのログファイルにエラーメッセージがなく、lsyncdはそもそもログファイルが作成されていません。

どのように lsyncd を起動しましたか?
もし、起動ユーザーが rsync (一般ユーザー) だと、/var/log/ 以下に書き込み権限がないので、エラーとなり、lsyncd は起動できないと思います。

また、rsync_path = "sudo /usr/bin/rsync", なので、受信側 (178.128.123.183) で rsync ユーザーが "sudo /usr/bin/rsync" をパスワードなしで実行できることも確認ください。

投稿2020/08/22 14:47

TaichiYanagiya

総合スコア12173

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

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

t4gforce

2020/08/23 02:57 編集

回答していただきありがとうございます。 lsyncdはrootで起動しました。 # whoami root # systemctl restart lsyncd.service また、受信サーバ(178.128.123.183)でsudo /usr/bin/rsync を起動できることも確認しました $ whoami rsync $ sudo /usr/bin/rsync rsync version 3.1.1 protocol version 31 Copyright (C) 1996-2014 by Andrew Tridgell, Wayne Davison, and others. ... どちらも確認しましたが、まだファイルを同期できていません。 他に何か試すべきことはありますでしょうか。
TaichiYanagiya

2020/08/23 14:35

root で起動しているなら /var/log/lsyncd.log に出力されるはずなのですが、起動できていないのでしょうか? "systemctl status lsyncd" や "journalctl -u lsyncd" で起動しているかどうか、エラーはないかどうか、確認するといいと思います。
t4gforce

2020/08/24 13:39

お返事いただきありがとうございます。 rootで起動できていたのですが、自分の勘違いでlsyncdにオプションを与えずに起動していました。 オプションを与えて起動することで、同期ができました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問