簡體   English   中英

刪除文件時,lsyncd不尊重ssh用戶

[英]lsyncd doesn't respect ssh user when deleting files

我們已設置lsyncd以在兩台主機之間同步數據。 ssh連接配置為使用具有匹配的id_rsa標識文件的用戶tomcat。 由於某種原因,遙控器上的追加/創建工作正常,但刪除不起作用。 當rsync嘗試刪除文件時,root用戶用於連接目標主機而不是tomcat用戶(用於create / append)。

在日志( /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版

使用rsyncssh時,必須要小心。

“ssh {}”配置參數有自己的“二進制”,“端口”,“_ extra”。 有關完整的設置列表,請參閱文檔

這有點令人困惑,因為還需要配置“rsync {}”。 是的,這兩個部分都需要完成。

“ssh”部分用於刪除和移動事件。 “rsync”部分用於文件傳輸。

人們可以通過使用rsync而不是rsyncssh來避免混淆。 但是,當文件移動時,您將失去rsyncssh提供的帶寬效率。

GitHub上的以下問題幫助我解決了同樣的問題: https//github.com/axkibe/lsyncd/issues/369

我做的很簡單,我剛用lysync.conf.lua文件中的default.rsync替換default.rsyncssh

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM