我有 2 台服务器 serv1 和 serv2,需要比较这 2 台服务器中的图像以检测哪些文件丢失或已被修改。
到目前为止,我有 3 个选项:
- 使用 PHP 创建 API
- 我创建了一个 API 文件,它将返回 serv1/www/app/images/ 中的所有图像
- 获取每张图片的修改时间
- 将结果返回为 json
- 输出是这样的: { 'path/to/file' : 123232433422 }
- 我在 serv2 中获取它,解码然后将数组合并到 serv2/www/app/images 中的图像
- 获取array_diff,工作正常
缺点: - 需要很多时间(获取、解码、合并、循环、比较......)
- 使用 rsync
- 空运行以获取 serv1 中存在但在 serv2 中丢失或修改的图像列表(非常快:))
缺点:
- apache 无法运行 ssh,因为它无权访问 ~/.ssh/
- 需要给 apache 权限,但我的客户不想要它
- 所以简而言之,我不能使用任何需要许可的东西
- 也许我可以使用一些图书馆或供应商,但我怀疑我的客户会允许我。如果它可以是 shell 脚本或 php 内置函数,我会尽可能地这样做。
所以我的问题是,是否有另一种方法可以在不需要身份验证的情况下获取这些图像的图像和修改日期?如果数组太大,我的第一个解决方案可以优化,因为它需要很多时间。
我希望解决方案可以用 PHP 或 Shell 脚本完成。
请帮助给我更多的选择。谢谢