Debian-Squeeze
清除每個使用者的 tmp 目錄
我在我的新伺服器上創建了一個這樣的目錄結構:
/家/ $ 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 作業 - 但只能從預設保存路徑!因此,您可以通過以下兩種方式之一解決此問題:
- 將 PHP 會話保存路徑更改回其預設值。
- 設置
session.gc_probability = 1
在php.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 作業以在夜間執行。