膨大な画像ディレクトリを最適化する方法

膨大な画像ディレクトリを最適化する方法

私は小さな会社の技術業務を引き継ぎました。しかし、前任者は、当社の Web サイトでは 5 GB 程度の画像しか使用していないにもかかわらず、数百 GB の画像を保存するという誤った決定を下しました。基本的に、クリーンアップ スクリプトはありません。私は今、この混乱を最適化する任務を負っていますが、どこから始めればよいのかよくわかりません。各画像ファイルが Web 経由で最後にアクセスされた時刻のリストを取得して、「過去 365 日間開かれていない場合は、バックアップ ドライブに移動し、プライマリ サーバーから削除する」などの操作を実行する方法はあるでしょうか。

答え1

使用している環境(OS、Web サーバーなど)を明記していないため、Linux であると想定します。

を使用してデータ ディレクトリをサーバーにマウントしていない場合は、 を使用して365 日間アクセスされていないファイルを検索noatimeできます。find

find /var/www/images -iname "*.jpg" -atime +365 -type f

を使用した場合noatime、これは不可能になります (また、 を使用した場合relatime、 はatime24 時間オフになる可能性があります)。

ただし、これは良い方法ではありません。HTML ファイル内にデッドリンクが発生し、5 日後に誰かがこのリソースを必要とする可能性があるからです...

より良いアプローチ: Web ツリーを解析し、そこで参照されているすべてのファイルをリストし (Web サーバーの自動インデックス作成をオフにしてください)、その他すべてをアーカイブします。この方法では、HTML ファイルにリストされているすべてのものが引き続き利用可能であることを確認できます。

注意してください。通常のツリーにリンクされていない孤立した HTML ファイルがあり、ユーザーが直接リンク経由でアクセスする可能性があります。リストを作成するときは、その点を考慮してください。もちろん、画像ファイルについても同じことが言えるかもしれませんが、実際にはログ ファイルの解析またはfindメソッドのいずれかを使用してのみ、それらを検出できます。

答え2

Web ログがどのくらい遡るかに応じて、問題のディレクトリからファイルのすべてのエントリを解析し、見つからないものをすべて削除することができます。

関連情報