2 つのサーバー serv1 と serv2 があり、これら 2 つのサーバーのイメージを比較して、欠落しているファイルや変更されているファイルを検出する必要があります。
これまでのところ、3 つのオプションがあります。
- PHP を使用して API を作成する
- serv1/www/app/images/ 内のすべての画像を返す API ファイルを作成しました
- 各画像の変更時刻を取得する
- 結果をjsonとして返す
- 出力は次のようなものです: { 'path/to/file' : 123232433422 }
- 私はそれをserv2でフェッチし、デコードしてから配列をserv2/www/app/imagesの画像にマージします
- array_diff を取得し、正常に動作します
短所: - 多くの時間がかかります (フェッチ、デコード、マージ、ループ、比較...)
-rsyncを使用
- 予行演習を実行して、serv1 に存在するが、serv2 で欠落または変更されているイメージのリストを取得します (非常に高速です:))
短所:
- ~/.ssh/ へのアクセスが許可されていないため、Apache は ssh を実行できません
- Apacheに許可を与える必要がありますが、クライアントはそれを望んでいません
- つまり、許可が必要なものは使用できません
-ライブラリやベンダーを使用できるかもしれませんが、クライアントが許可してくれるとは思えません。シェルスクリプトやPHPの組み込み関数であれば、可能な限りそうします。
私の質問は、認証を必要とせずに画像とそれらの画像の変更日を取得する別の方法があるかどうかです。私の最初の解決策は、配列が大きすぎる場合に最適化できれば問題ありません。多くの時間がかかります。
PHPまたはシェルスクリプトで解決できることを願っています。
より多くのオプションを教えてください。ありがとう