https://www.mehr-schulferien.de托管约100,000个网页。出于性能原因,它们不是从实际的Web应用程序传递的,而是从静态镜像传递的。该镜像在每月的1号产生。通过运行wget -m
完成。然后用gzip和brotli压缩所有文件。因为这是一台非常老旧且缓慢的服务器,所以该过程将花费近两天的时间。
我想优化流程。实际上每个月只有不到10%的页面获得新内容。有些被一起删除。因此,无需花费大部分时间压缩所有文件。
这是一个简化的示例(实际的有子目录,显然还有更多文件)。 current
目录中包含20190101
发行版中的所有文件,并且所有这些文件都使用gzip和brotli压缩。 20190201
版本删除了b.html
文件并更改了a.html
文件。
├── current
│ ├── a.html
│ ├── a.html.br
│ ├── a.html.gz
│ ├── b.html
│ ├── b.html.br
│ ├── b.html.gz
│ ├── c.html
│ ├── c.html.br
│ ├── c.html.gz
│ ├── d.html
│ ├── d.html.br
│ └── d.html.gz
└── releases
├── 20190101
│ ├── a.html
│ ├── b.html
│ ├── c.html
│ └── d.html
└── 20190201
├── a.html # is changed
├── c.html
└── d.html
解决此问题的最佳方法是什么?最糟糕的情况是编写一个Ruby脚本,该脚本会转到20190201
目录,并将文件与current
目录进行比较。但是,是否有一个更优雅,更快捷的解决方案呢?我可以使用rsync
,find
或其他Bash工具解决此问题吗?还是一些聪明的目录和文件链接?