Debian-Squeeze

清除每個使用者的 tmp 目錄

  • February 25, 2013

我在我的新伺服器上創建了一個這樣的目錄結構:

/家/ $ username/ $ domain/(例如:/home/domaincom/domain.com/)-public_html-logs-conf-tmp

一切正常,但不幸的是,apache(或 PHP)沒有自動清除 tmp 目錄。:/

有沒有一種簡單的方法來清除這些目錄?例如像logrotate這樣的解決方案,我將目錄設置為如下旋轉:/home///logs

出現問題是因為使用者臨時目錄上有 1562074 個文件。:/ 我不確定誰(apache、php、外部腳本)應該清理這個目錄以及多久清理一次。

Apache 或 php 沒有義務清理未使用的臨時文件(主要是 sess_…)?

感謝您的任何回答。:)

您更改了預設的 PHP 會話保存路徑。

在 Debian 系統上,PHP 指令session.gc_probability設置為 0,防止清理舊會話,並設置了一個清除舊 PHP 會話的 cron 作業 - 但只能從預設保存路徑!

因此,您可以通過以下兩種方式之一解決此問題:

  1. 將 PHP 會話保存路徑更改回其預設值。
  2. 設置session.gc_probability = 1php.ini.

假設 linux,編寫一個腳本來解析主目錄,每個目錄進入 tmp 目錄並在特定日期刪除所有內容。

一個例子可能是

#!/bin/bash
for list '/bin/ls -lRt /home/ | grep tmp/' do
 /usr/bin/find $list -atime -10  -type -f -exec rm -f {} # find+ delete files older than ten days
done

顯然,您會希望在其中進行一些健全性檢查,而我的語法可能不正確,等等。您可能想要排除一些目錄,在開始時將它們傳遞給 ls 命令。

一旦您對腳本找到並消除了您想要的內容感到滿意,請將其設置為 cron 作業以在夜間執行。

引用自:https://serverfault.com/questions/482223