问题标签 [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.
linux - Linux 中合理数量的 inotify 监视是多少?
我正在开发一个守护进程,它通过 inotify 监视文件事件,以在访问文件时触发各种类型的事件。我读过手表有点贵,因为内核存储了每个被监视文件的完整路径名。
多少块手表会太多?
编辑:大多数情况下,我想知道..你有没有看到过明显的性能冲击,如果有的话,它发生在多少只手表上?是的,我必须递归地监视/(但是它是一个最小的引导系统)。
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 的错误日志:
注意:我对文件进行了清理,并假设我理解应用程序的所有意图,即源和目标应该在哪里。
所以,只要我们明确目标:
- 我有 2 个负载平衡的 Web 服务器。
- 图像将被上传,而无法控制它们去往哪个服务器。
- 我正在设计一个使用 lsyncd/rsync 作为守护进程的同步架构,以便在上传时更新两台服务器。这意味着两台服务器都需要运行 lsyncd/rsyncd 而不删除。无删除假设如果两个服务器同时获得不同的图像,那么哪个服务器首先检查目标,它将删除目标上的文件,因为它不在源上。
他们正在讨论如何将图像定向到一台服务器,然后我们可以使用删除选项使两台服务器准确同步,而不必担心两台服务器上都有同步服务,并且可能会因为时间问题而丢失一个。另外,不知道如果一个文件打开而另一台服务器试图删除它会发生什么。
我很绝望,因为我什至无法得到作者的帮助。也许它无法完成,但看起来如此强大的应用程序会有一个愚蠢的小缺陷,这将使它完全无法被那些有安全问题的人使用。
谢谢!
linux - 使用 lsyncd 使用远程源更新本地文件夹?
我使用 lsyncd 将本地文件夹同步到我拥有的服务器,使用 rsyncssh 和这样的配置文件:
现在,我想执行“拉”以将另一台机器(不同网络)上的本地目录与该远程服务器同步。
我正在使用这个配置文件:
但我收到了这个错误:
当然 /tmp/data 存在,任何提示我做错了什么?
你知道是否可以使用 lsyncd 和 rsync,就像我使用它来使本地文件夹与远程源保持“最新”一样?或者我可以将 rsyncssh 与远程源一起使用吗?
谢谢!
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
或什么?
ssh - Lsync 在主-主/双向设置中没有以正确的顺序处理文件
我正在使用 LSync 为两个运行 Apache 的独立 CentOS 7 服务器同步 Web 根目录。到目前为止,它似乎运行得很好,但每隔一段时间,我就会注意到 lsync 不能正确处理文件。
我遇到的问题的一个示例 - 如果我在server01和server02上有一个名为hello-world.txt的文件,并且我从server01中删除它,当 lsync 运行时,而不是从server02中删除它,它实际上是重新创建它在server01上。
我还没有在网上找到任何关于这个的信息,而且我是使用 lsync 的新手,所以我不太确定如何解决这个问题。
不确定是否需要,但这是 lsync 配置文件 ( /etc/lsyncd.conf
):
任何帮助将不胜感激!谢谢!
synchronization - 在两台主机之间同步数据库
我为我的网站构建了一个镜像主机。我使用Lsyncd来同步项目文件,它工作得很好。
对于数据库,在主服务器和镜像服务器之间进行同步的最佳方式是什么?
linux - 使用 Lsyncd 保留文件的所有权
我有两台服务器:源服务器和目标服务器。我想使用 lsyncd 将源服务器目录中的文件同步到目标服务器上的另一个目录。
在我的 ssh 守护进程中,在两台服务器上,我都禁用了 root 登录 ( PermitRootLogin no
),因此我不能使用 root 用户通过 ssh 运行 lsyncd。
我在两台服务器上创建了一个用户“同步器”,它有一个密钥对,允许从源服务器到目标服务器的无密码 ssh 登录。所以这有效:
[syncer@source-server]$ ssh syncer@target-server
我的 lsyncd.conf 看起来像这样:
它的工作原理是目标服务器上复制文件的所有者始终是“同步器”。源的权限得到尊重并在目标上正确复制。我只是想不出一种方法来保留复制文件的所有者(和组)。(即,如果源上的文件归“deknuth”所有,我希望目标上的同步文件也归“deknuth”所有,而不是“syncer”)。
TIA
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
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 。我究竟做错了什么?
bash - lsyncd 不能使用动态备份后缀
我不想使用 lsyncd 来创建使用日期/时间字符串作为后缀的修改文件的备份。如果我使用 lua 设置后缀选项(在 lsyncd.conf 文件中),则日期/时间在我启动守护程序时计算一次,并且不会在每次同步迭代时更新。这导致每个修改的文件(具有相同的后缀)只创建一个备份文件,我希望每个文件的每个修改都创建一个新的备份文件。我使用的配置文件如下:
如果我尝试在后缀选项中传递 bash 的日期函数,如下所示:
它在不计算值的情况下转换为字符串,从而生成一个名称如下的备份文件:
我仅限于使用 2.1.4 版本的 lsyncd。是否可以创建动态备份文件后缀?