2

2 つのホスト間でデータを同期するように lsyncd をセットアップしました。ssh 接続は、id_rsa ID ファイルが一致するユーザー tomcat を使用するように構成されています。何らかの理由で、リモートでの追加/作成は正常に機能しますが、削除は機能しません。rsync がファイルを削除しようとすると、Tomcat ユーザー (作成/追加に使用される) ではなく、root ユーザーが宛先ホストへの接続に使用されます。

ログ ( /var/log/lsyncd/lsyncd.log ) には次のように表示されます。

Wed Feb 15 13:48:24 2017 Normal: Rsyncing list
/test.txt
Wed Feb 15 13:48:26 2017 Normal: Finished (list): 0
Wed Feb 15 13:48:34 2017 Normal: Deleting list
/myfolder//test.txt
Received disconnect from 10.29.146.78: 2: Too many authentication failures for root
Wed Feb 15 13:48:41 2017 Normal: Retrying (list): 255

以下の構成 ( /etc/lsyncd.conf )を使用します。

settings{
  pidfile        = "/var/run/lsyncd.pid",
  statusFile     = "/var/tmp/lsyncd.status",
  logfile        = "/var/log/lsyncd/lsyncd.log",
  statusInterval = 60,
  logfacility    = "user",
  logident       = "lsyncd",
  inotifyMode    = "CloseWrite",
  maxProcesses   = 10,
}

sync {
  default.rsyncssh,
  source = "/myfolder/",
  delete = true,
  host = "remote-host",
  targetdir = "/myfolder/",
  excludeFrom = "/etc/lsyncd/lsyncd.exclude",
  delay = 5,
  rsync = {
    binary = "/usr/bin/rsync",
    archive = true,
    owner = true,
    compress = true,
    _extra = { "--bwlimit=50000", "--delete-after" },
    rsh = "/usr/bin/ssh -l tomcat -i /usr/share/tomcat6/.ssh/id_rsa",
  }
}

回避策として、/root/.ssh/configファイルを次のように使用できます。

Host remote-host
    Hostname remote-host
    User tomcat
    IdentityFile /usr/share/tomcat6/.ssh/id_rsa

もちろん、lsyncd.conf 構成で動作するはずなので、これを使用する必要はありません。

lsyncd バージョン 2.1.4を使用しています

4

2 に答える 2

0

rsyncssh を使用する場合は注意が必要です。

「ssh {}」構成パラメーターには、独自の「binary」、「port」、「_extra」があります。設定の完全なリストについては、ドキュメントを参照してください。

「rsync {}」も設定する必要があるため、少し混乱します。はい、両方のセクションを行う必要があります。

「ssh」セクションは、削除および移動イベントに使用されます。「rsync」セクションはファイル転送に使用されます。

rsyncssh の代わりに rsync を使用すると、混乱を避けることができます。ただし、ファイルが移動されると、rsyncssh が提供する帯域幅の効率が失われます。

于 2018-03-14T14:53:28.520 に答える