我接管了一家小公司的技術營運。然而,前一位領導者做出了儲存 100 GB 圖像的錯誤決定,儘管我們的網站只使用了大約 5GB 的圖像。基本上,沒有清理腳本。我現在的任務是優化這個混亂的局面,但不太確定從哪裡開始。有沒有辦法獲取每個影像檔案最後一次透過網路存取的時間列表,這樣我就可以執行類似「如果在過去 365 天內未打開,則移動到備份磁碟機並從主伺服器中刪除」之類的操作?
答案1
你忽略了告訴你要使用的環境(作業系統、網頁伺服器等),所以我假設是Linux。
如果您沒有使用 掛載資料目錄到伺服器上noatime
,您可以使用find
來搜尋 365 天未存取的檔案:
find /var/www/images -iname "*.jpg" -atime +365 -type f
如果您使用noatime
,則這是不可能的(如果您使用relatime
,則atime
可能會 24 小時關閉)。
然而,這不是一個好方法,因為您的 HTML 文件中可能會出現死鏈接,並且 5 天後有人會需要此資源...
更好的方法:解析您的網路樹,列出其中引用的所有檔案(確保關閉您的網頁伺服器自動索引...)並存檔其他所有內容。這樣您就可以確保 HTML 文件中列出的所有內容仍然可用。
請注意,您可能會遇到一些孤立的 HMTL 文件島,這些文件未連結到您的常規樹中,人們可以透過直接連結存取這些文件 - 在建立清單時請考慮這些問題。當然,對於圖像檔案也是如此,但是您實際上只能透過日誌檔案解析或方法來捕獲這些檔案find
。
答案2
根據您的網誌的回溯時間,您可以解析出相關目錄中檔案的所有條目,然後刪除所有未找到的內容。