问题标签 [lsyncd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
56963 浏览

linux - Linux 中合理数量的 inotify 监视是多少?

我正在开发一个守护进程,它通过 inotify 监视文件事件,以在访问文件时触发各种类型的事件。我读过手表有点贵,因为内核存储了每个被监视文件的完整路径名。

多少块手表会太多?

编辑:大多数情况下,我想知道..你有没有看到过明显的性能冲击,如果有的话,它发生在多少只手表上?是的,我必须递归地监视/(但是它是一个最小的引导系统)。

0 投票
3 回答
18824 浏览

rsync - 使用非 root 登录的 lsync 配置

我已经搜索了超过 5 天,尝试了许多技巧和技巧,甚至试图让 lsync 的作者提供帮助,但都是徒劳的。

我有 2 个 Red Hat 6.3 Web 服务器,需要在上传图像时同步它们的图像目录。我们无法控制它被上传到哪台服务器,但在上传时它不会被加载到另一台服务器。

我只需要能够告诉 lsync 使用除 root 以外的其他用户的凭据。我们的信息安全团队不允许无密码根访问。不能说我怪他们。

我有一个具有 sudo 访问权限的帐户,可以执行将文件发送到目的地所需的一切。虽然我可以让 rsync 很好地执行同步,但从 lsync 运行时它会失败并出现权限被拒绝错误。

我什至可以从日志中复制 lsync 执行的命令,删除方括号并成功同步。所以,我很确定是 lsync 导致了这个问题。仅仅因为它是以root身份运行的。shell 脚本强制它以 root 身份运行。我什至尝试将其更改为非 root 帐户,并且所有支持文件都与脚本一起更改,但它仍然拒绝同步。

以下是我拥有的脚本和文件的详细信息: 操作系统:Red Hat Linux 版本 6.3 (Santiago) lsyncd 配置文件:

rsyncd.conf 文件:

rsyncd.conf 文件已更改为使用不同的 uid/gid,因为这是我希望将其更改为的内容。

这是来自 lsyncd.log 的错误日志:

注意:我对文件进行了清理,并假设我理解应用程序的所有意图,即源和目标应该在哪里。

所以,只要我们明确目标:

  1. 我有 2 个负载平衡的 Web 服务器。
  2. 图像将被上传,而无法控制它们去往哪个服务器。
  3. 我正在设计一个使用 lsyncd/rsync 作为守护进程的同步架构,以便在上传时更新两台服务器。这意味着两台服务器都需要运行 lsyncd/rsyncd 而不删除。无删除假设如果两个服务器同时获得不同的图像,那么哪个服务器首先检查目标,它将删除目标上的文件,因为它不在源上。

他们正在讨论如何将图像定向到一台服务器,然后我们可以使用删除选项使两台服务器准确同步,而不必担心两台服务器上都有同步服务,并且可能会因为时间问题而丢失一个。另外,不知道如果一个文件打开而另一台服务器试图删除它会发生什么。

我很绝望,因为我什至无法得到作者的帮助。也许它无法完成,但看起来如此强大的应用程序会有一个愚蠢的小缺陷,这将使它完全无法被那些有安全问题的人使用。

谢谢!

0 投票
1 回答
3272 浏览

linux - 使用 lsyncd 使用远程源更新本地文件夹?

我使用 lsyncd 将本地文件夹同步到我拥有的服务器,使用 rsyncssh 和这样的配置文件:

现在,我想执行“拉”以将另一台机器(不同网络)上的本地目录与该远程服务器同步。

我正在使用这个配置文件:

但我收到了这个错误:

当然 /tmp/data 存在,任何提示我做错了什么?

你知道是否可以使用 lsyncd 和 rsync,就像我使用它来使本地文件夹与远程源保持“最新”一样?或者我可以将 rsyncssh 与远程源一起使用吗?

谢谢!

0 投票
2 回答
988 浏览

apache - 使用 lsync 同步 apache webroot 文件 - 遇到权限问题

我在两个 Web 服务器之间分配负载,这意味着所有 Apache 设置和虚拟主机几乎相同,我想通过使用 LSync 确保它们保持这种状态(或者如果有其他解决方案可以帮助解决我的问题)我有,让我知道)

所以很明显 Apache 以apache用户身份运行,我们不能启用 root SSH 登录,所以我创建了一个lsync用户,可以使用 RSA 密钥在两台服务器之间进行 SSH。

现在我遇到了一些权限错误,这正是我所期望的。我现在正在尝试的是我将lsync用户添加到apache组,并将apache用户添加到lsync组......这似乎工作正常,只要用户组的文件都被 chowned 7 ...

我考虑过每隔一段时间设置一个 cron 作业来 chown apache.apache,甚至可能为组和用户设置 chmod +rwx,但我确信这会导致其他一些问题。

我想过让 lsync 以apache用户身份运行,但看起来 apache 主目录实际上需要由root.root.. 拥有,这样会导致 apache 用户尝试 ssh 并从.ssh目录中读取的问题。

当我在 Google 上查找时,我找不到太多关于此的信息……大多数人只是使用 root 用户进行 lsync,这是不可能的。

因此,如果有人有修复程序,那就太好了!谢谢

PS我知道我可以允许lsync用户通过 sudo 执行特定命令,如果我正确配置了 sudoers 配置......有没有办法让它sudo chown apache.apache /var/www && sudo chmod -R u+rwx /var/www或什么?

0 投票
1 回答
922 浏览

ssh - Lsync 在主-主/双向设置中没有以正确的顺序处理文件

我正在使用 LSync 为两个运行 Apache 的独立 CentOS 7 服务器同步 Web 根目录。到目前为止,它似乎运行得很好,但每隔一段时间,我就会注意到 lsync 不能正确处理文件。

我遇到的问题的一个示例 - 如果我在server01server02上有一个名为hello-world.txt的文件,并且我从server01中删除它,当 lsync 运行时,而不是从server02中删除它,它实际上是重新创建它在server01上。

我还没有在网上找到任何关于这个的信息,而且我是使用 lsync 的新手,所以我不太确定如何解决这个问题。

不确定是否需要,但这是 lsync 配置文件 ( /etc/lsyncd.conf):

任何帮助将不胜感激!谢谢!

0 投票
1 回答
59 浏览

synchronization - 在两台主机之间同步数据库

我为我的网站构建了一个镜像主机。我使用Lsyncd来同步项目文件,它工作得很好。

对于数据库,在主服务器和镜像服务器之间进行同步的最佳方式是什么?

0 投票
1 回答
1983 浏览

linux - 使用 Lsyncd 保留文件的所有权

我有两台服务器:源服务器和目标服务器。我想使用 lsyncd 将源服务器目录中的文件同步到目标服务器上的另一个目录。

在我的 ssh 守护进程中,在两台服务器上,我都禁用了 root 登录 ( PermitRootLogin no),因此我不能使用 root 用户通过 ssh 运行 lsyncd。

我在两台服务器上创建了一个用户“同步器”,它有一个密钥对,允许从源服务器到目标服务器的无密码 ssh 登录。所以这有效:

[syncer@source-server]$ ssh syncer@target-server

我的 lsyncd.conf 看起来像这样:

它的工作原理目标服务器上复制文件的所有者始终是“同步器”。源的权限得到尊重并在目标上正确复制。我只是想不出一种方法来保留复制文件的所有者(和组)。(即,如果源上的文件归“deknuth”所有,我希望目标上的同步文件也归“deknuth”所有,而不是“syncer”)。

TIA

0 投票
2 回答
1794 浏览

ssh - lsyncd 在删除文件时不尊重 ssh 用户

我们已经设置了 lsyncd 来在两台主机之间同步数据。ssh 连接配置为使用用户 tomcat 和匹配的 id_rsa 身份文件。出于某种原因,遥控器上的追加/创建工作正常,但删除不起作用。当 rsync 尝试删除文件时,root 用户用于连接目标主机,而不是 tomcat 用户(用于创建/追加)。

在日志(/var/log/lsyncd/lsyncd.log)中,我们看到:

我们使用以下配置(/etc/lsyncd.conf):

作为一种解决方法,我们可以使用/root/.ssh/config文件:

当然,我们宁愿不必使用它,因为它应该与 lsyncd.conf 配置一起使用。

我们正在使用lsyncd 版本 2.1.4

0 投票
0 回答
1383 浏览

macos - 与 lsyncd 一起使用时,Mac 上的 rsync 版本出现问题

我正在尝试将我的 mac 上的文件夹与我构建的 ubuntu 服务器 16.06 系统上的文件夹同步。问题出在 rsync 版本上。这就是我所做的。我在 /var/log/lsyncd/ 中创建了一个文件并将其命名为 lsyncd.conf.lua。以下是其内容:

运行此命令时出现此错误:lsyncd /var/log/lsyncd/lsyncd.conf.lua

如您所见,我添加了这一行binary = "/usr/local/bin/rsync",,希望它会告诉系统使用我通过自制软件安装的 rsync。但是,我收到了上面的错误。我有最新的 mac 版本 10.12.3 ,我的 rsync 版本是 3.1.2 。我究竟做错了什么?

0 投票
1 回答
336 浏览

bash - lsyncd 不能使用动态备份后缀

我不想使用 lsyncd 来创建使用日期/时间字符串作为后缀的修改文件的备份。如果我使用 lua 设置后缀选项(在 lsyncd.conf 文件中),则日期/时间在我启动守护程序时计算一次,并且不会在每次同步迭代时更新。这导致每个修改的文件(具有相同的后缀)只创建一个备份文件,我希望每个文件的每个修改都创建一个新的备份文件。我使用的配置文件如下:

如果我尝试在后缀选项中传递 bash 的日期函数,如下所示:

它在不计算值的情况下转换为字符串,从而生成一个名称如下的备份文件:

我仅限于使用 2.1.4 版本的 lsyncd。是否可以创建动态备份文件后缀?