大文件树是指大约 20 万个文件,并且一直在增长。但是,在任何给定的小时内更改的文件数量相对较少。
双向我的意思是更改可能发生在任一服务器上并且需要推送到另一台服务器,因此 rsync 似乎不合适。
遥远的意思是服务器都在数据中心,但在地理上彼此相距遥远。目前只有 2 个服务器,但随着时间的推移可能会扩展。
实时地,同步之间有一点延迟是可以的,但是每 1-2 分钟运行一次 cron 似乎是不对的,因为在任何给定的小时内,很小的一部分文件可能会发生变化,更不用说分钟了。
编辑:这是在 VPS 上运行的,所以我可能会限制我可以做的内核级别的事情。此外,VPS 的资源并不丰富,所以我会回避需要大量内存的解决方案(比如 Gluster?)。
完成这项工作的最佳/最“被接受”的方法是什么?这似乎是一个普遍的需求,但我还没有找到一种普遍接受的方法,这令人惊讶。(我正在寻求群众的安全。:)
我遇到过lsyncd在文件系统更改级别触发同步。这看起来很聪明,虽然不是很常见,但我对各种 lsyncd 方法有点困惑。只是将 lsyncd 与 rsync 一起使用,但似乎这对于双向性来说可能很脆弱,因为 rsync 没有内存概念(例如,要知道 A 上已删除的文件是否应在 B 上删除,或者它是否是 B 上的新文件应该复制到 A)。 唇形看起来只是一个lsyncd + rsync的实施,对不对?
然后将 lsyncd 与csync2一起使用,如下所示:https : //icicimov.github.io/blog/devops/File-system-sync-with-Csync2-and-Lsyncd/ ...我倾向于这种方法,但是csync2 有点古怪,但我确实对它进行了成功的测试。我最担心的是我找不到很多社区对此方法的确认。
这里的人似乎很喜欢 Unison,但它似乎不再处于积极开发状态,并且不清楚它是否具有像 lsyncd 这样的自动触发器。
我已经看到Gluster提到过,但也许对我需要的东西来说太过分了?
更新:仅供参考 - 我最终采用了我提到的原始解决方案:lsyncd+csync2。它似乎工作得很好,而且我喜欢让服务器非常松散地连接的架构方法,这样每个服务器都可以无限期地独立运行,而不管它们之间的链接质量如何。
我仍然看到人们sync; sync; sync; sleep 30; halt在谈论关闭或重新启动 Linux 时建议使用咒语。
我从 Linux 开始就一直在运行,虽然这是 BSD 4.2/4.3 和 SunOS 4 天的推荐程序,但我不记得至少在过去的十年里我必须这样做,在此期间我可能经历了 Linux 的关闭/重启可能数千次。
我怀疑这是一个时代错误,因为内核无法卸载和同步根文件系统和其他关键文件系统,即使在单用户模式下(例如 /tmp),因此有必要明确告诉它刷新尽可能多的数据到磁盘。
这些天,还没有在内核源代码中找到相关代码(通过http://lxr.linux.no和 google挖掘),我怀疑内核足够聪明,甚至可以干净地卸载根文件系统,文件系统也足够聪明在正常shutdown/ reboot/期间卸载自身之前有效地执行同步(2)poweorff。
在"sync; sync; sync"其中的文件系统不会卸载干净(如物理磁盘故障)或系统处于这样的状态,只有直接强迫重新启动(8)将它弄出来的冷冻(如负载过只在极端的情况下有必要高以让它安排关闭命令)。
sync在卸载可移动设备之前,我也从未执行过该程序,也从未遇到过问题。
另一个例子 - Xen 允许 DomUshutdown从 Dom0发送命令,这被认为是“干净的关闭”,无需任何人先登录并输入魔法sync; sync; sync。
我是对的还是我幸运地关闭了数千次系统?
我在工作和家里使用 OS X、Linux、Solaris 和 Windows。有一些很好的工具可以让我独立管理许多需要的登录名/密码平台。但大多数情况下,他们希望我随身携带拇指驱动器或需要直接访问中心位置(云中的天空驱动器)。
拇指驱动器太容易丢失(= 需要同步备份),中心位置并不总是可访问/可安装。此外,公司政策经常正确地防止这种情况。
是否有一种工具可以让我在本地添加密码,然后稍后将它的数据库与“母舰”同步。或者您是否使用了另一种方法来解决我的问题?
编辑 我的问题更多是关于“同步”而不是跨平台。我已经评估(=阅读功能列表)一些好的跨平台工具,但需要一个为我做同步的工具。同步我的意思是“合并两个版本”而不是“用新文件替换(希望)旧文件”。我不确定我是否总是足够自律/清醒以防止数据丢失。
2010 年更新 Lifehacker刚刚发布了AgileSolutions现在有一个适用于 Windows 的 1Password 测试版。
2014 年更新我现在已经在 Windows/Os X/IOS 上使用 1Password 好几年了。它对我有用,但它不是免费/开放的。
您可以在http://Altenativeto.ne/1password 上查看具有类似功能列表的其他工具。
在另一个用户提出这个问题之后:Linux 服务器上的 Dropbox - 如何包含/排除文件夹?
执行其他问题和答案中列出的一些步骤后,我的图标仍然无法正常工作:
编辑:如果有人在阅读这篇文章时想知道,我可以通过以下链接最终显示我的图标:
- https://www.reddit.com/r/elementaryos/comments/2ufjsy/dropbox_icon_is_not_visible/
- https://github.com/nathanhandyer/elementary-dropbox-mods
对于想要从命令行执行此操作的任何人,该问题仍然有效。
有一个排除的答案,但没有一个包含的答案。有没有办法实现这一目标?
我看到dropbox命令的帮助文本中列出了前一个命令,但没有任何可以帮助我包含的命令。
有谁知道如何实现这一目标?
这是我看到的当前帮助文本:
Dropbox command-line interface
commands:
Note: use dropbox help <command> to view usage for a specific command.
status get current status of the dropboxd
help provide help
puburl get public url of a file in your dropbox
stop stop dropboxd
running return whether dropbox is running
start start dropboxd
filestatus get current sync status of one or more files
ls list …Run Code Online (Sandbox Code Playgroud) 我们使用 rsync 来备份服务器。
不幸的是,某些服务器的网络速度很慢。
rsync 最多需要五分钟才能检测到大型目录中没有任何变化。这些巨大的目录树包含很多小文件(大约 80k 个文件)。
我猜 rsync 客户端会为每个 80k 文件发送数据。
由于网络很慢,我想避免发送有关每个文件的 80k 次信息。
有没有办法告诉 rsync 对子目录树进行哈希和?
这样 rsync 客户端将只为巨大的目录树发送几个字节。
更新
到目前为止,我的策略是使用rsync. 但是如果不同的工具更适合这里,我可以切换。两者(服务器和客户端)都在我的控制之下。
更新2
一棵目录树中有 80k 个文件。每个单个目录不超过 2k 个文件或子目录
更新3
有关网络缓慢的详细信息:
time ssh einswp 'cd attachments/200 && ls -lLR' >/tmp/list
real 0m2.645s
Run Code Online (Sandbox Code Playgroud)
tmp/list 文件大小:2MByte
time scp einswp:/tmp/list tmp/
real 0m2.821s
Run Code Online (Sandbox Code Playgroud)
结论:scp 速度一样(不出意外)
time scp einswp:tmp/100MB tmp/
real 1m24.049s
Run Code Online (Sandbox Code Playgroud)
速度:1.2MB/s
我们的 Intranet 上有一个文件夹结构,其中包含大约 800,000 个文件,分为大约 4,000 个文件夹。我们需要将其同步到我们 DMZ 中的一小部分机器。结构的深度非常浅(它永远不会超过两层深)。
大多数文件永远不会改变,每天有几千个更新文件和 1-2000 个新文件。数据是在源数据已被清除的地方维护的历史报告数据(即,这些是源数据足够旧以至于我们存档和删除它的最终报告)。每天同步一次就足够了,因为它可以在合理的时间范围内发生。报告是在一夜之间生成的,我们早上第一件事就是同步作为计划任务。
显然,由于很少有文件定期更改,我们可以从增量复制中受益匪浅。我们已经尝试过 Rsync,但是仅仅完成“构建文件列表”操作就可能需要长达八到十二个小时的时间。很明显,我们正在迅速超越 rsync 的能力(12 小时的时间框架太长了)。
我们一直在使用另一个名为 RepliWeb 的工具来同步结构,它可以在大约 45 分钟内完成增量传输。然而,我们似乎已经超出了它的限制,它已经开始看到文件显示为删除,而实际上它们不是(也许某些内部内存结构已经耗尽,我们不确定)。
有没有其他人遇到过这种大规模的同步项目?是否有设计用于处理像这样的大量文件结构以进行同步?
使用时间 C 函数(自 Epoch 以来的秒数)显示,与具有正确时间的另一台服务器相比,我当前的 CentOS 6 服务器上的时间大约晚了 7 小时。如何更正系统时钟?我不认为这是漂移,因为我几周前刚刚设置了这个服务器,但它可能是。我设置了 ntpd 但它没有帮助,可能是因为时差太大。
想象一下,我有一个文件remote/A,其同步到local/A并且local/B是硬链接local/A。是否存在下一次remote/A更改和同步rsync不会删除local/A而只会替换/添加某些部分从而更改local/B(由于硬链接)的威胁?
我有一台 Windows 7 笔记本电脑,我想将其备份到网络文件夹。我的笔记本电脑上有一个驱动器(分区),我想备份到网络驱动器。如果我删除笔记本电脑文件夹中的文件,它也应该从备份中删除...
我曾经使用SyncToy,但是我知道这在 Windows 7 中不能正常工作 - 至少不能在大量文件中使用。
有没有其他选择?
我一直想知道是否有更好的方法来管理跨多个服务器的用户帐户。
目前,我的家庭/开发机器上有一个主要用户帐户(例如“用户”),并且我为每台服务器手动创建相同的“用户”帐户。然后我使用 rsync 将我的 .ssh 目录和我想要的任何其他目录复制到每个新服务器。
虽然这对于管理我目前管理的 2 台服务器似乎没问题,但我无法想象为 10 多台服务器做同样的事情,并且想知道最好的方法是什么。
谢谢!