2016-04-06 15 views
0

私はこのような設定ファイルでrsyncsshを使用して所有し、サーバーにローカルフォルダを同期するlsyncdを使用しました:lsyncdを使用して、ローカルのフォルダをリモートソースで更新しますか?

settings = { 
     logfile = "/var/log/lsyncd/lsyncd.log", 
     statusFile = "/var/log/lsyncd/lsyncd.status" 
} 
sync { 
     default.rsyncssh, 
     source = "/Users/user/source", 
     host = "[email protected]", 
     targetdir = "/tmp/data", 
     rsync = { binary = "/usr/local/bin/rsync" } 
} 

、私は別のローカルディレクトリを同期する「プル」を実行したいですマシン(別のネットワーク)をリモートサーバーと接続します。

私はこの設定ファイル使用しています:

settings = {...} 
sync { 
     default.rsync, 
     source = "[email protected]:/tmp/data", 
     target = "/home/user/dest", 
     rsync = { binary = "/usr/local/bin/rsync", _extra = { "-P", "-e", "ssh" } } 
} 

を、私はこのエラーを得た:もちろん

Error: failure getting absolute path of [[email protected]:/tmp/data] 
Error: Cannot access source directory: [email protected]:/tmp/data 

を/ tmp /データが存在し、私が間違ってやっている任意のヒントを?

lsyncdをrsyncと一緒に使ってローカルフォルダをリモートソースで最新の状態に保つことができるかどうか知っていますか?または、リモートソースでrsyncsshを使用できますか?

ありがとうございます!

答えて

1

このように設計されていないため、lsyncdはこれを実行できません。 inotifyイベントを使用してディレクトリを監視し、rsyncを起動して重い作業を行うことを意図しています。 inotifyは本質的にローカルコンセプトであり、lsyncは実際にはネットワーク通信そのものを行いません。

する必要があるのは、クライアントマシンに接続するように設定されたrsyncを起動するサーバー上でlsyncdサービスを実行することです。

つまり、ローカルマシンにsshサーバーを設定する必要があります。マシンに適切なドメイン名/ IPアドレスがないか、NATまたはファイアウォールの背後にある場合は、ssh -Rリバーストンネルを設定し、それを介してサーバーツークライアントrsyncをルーティングする必要があります。

セットアップが完了したらうまくいくはずですが、正直なところ、SyncThingを使う方が簡単かもしれません。

関連する問題