linux-rsync许多带有长文件名的小文件占用大量带宽

前端之家收集整理的这篇文章主要介绍了linux-rsync许多带有长文件名的小文件占用大量带宽前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个文件存储服务器,它使用文件的sha256哈希作为文件名以及文件扩展名在磁盘上存储文件,并在三个级别的目录中存储,例如:带有sha256散列的PDF文件AABB1F1C6FC86DB2DCA6FB0167DE8CF7288798271EA24B68D857CBC5CF8DC66A将存储在如下的子目录中:

<根> /AA/BB/AABB1F1C6FC86DB2DCA6FB0167DE8CF7288798271EA24B68D857CBC5CF8DC66A.pdf

文件添加到目录结构中,但永远不会被删除修改.

我使用每10分钟运行一次使用rsync将文件推送到远程服务器的cron作业保留此文件结构的实时副本.由于文件添加后永远不会被删除或更改,实际上它只会发送新文件.

我发现rsync用于比较两个目录(即没有变化)的带宽约为11 MB,随着文件总数的增长而增加(目前为148 207).这是有道理的 – rsync实际上必须将所有文件名的列表发送到远程服务器,以确定远程服务器上缺少哪些文件名.

所以我的问题是:有没有办法减少使用的带宽?它不一定是基于rsync的解决方案,但它更可取.我正在考虑将rsync查看的文件限制为仅最近修改过的文件,即在上次同步后修改,但似乎不推荐:rsync only files created or modified after a date and time

还有其他建议吗?

解决方法

在大多数情况下,这是不推荐的,但鉴于您的目标是减少差异计算带宽,这是合适的.请考虑以下脚本流程:

>触摸一个文件作为你的“高栏”,这需要系统地命名,而不是覆盖你的最后一个“高栏”,现在是你的“低栏”.该脚本将在这两个文件日期之间传输mtime.请注意,您不得重命名或以其他方式更改这些文件上的日期戳.
>使用find with -newer< lowbarfile> ! -newer< highbarfile>选择要传输的文件,像你的参考问题一样管道到rsync.
>每周(或每晚),重新同步整个目录,以确保没有遗漏任何内容.获取以这种方式传输的文件的电子邮件日志,以便您可以查看先前步骤是否出现问题.

这并不像inotifywatch那样令人敬畏,但它也不会在8000个目录之后中断,并且您的层次结构似乎最多使用256 65536 dirs.

原文链接:https://www.f2er.com/linux/398026.html

猜你在找的Linux相关文章