2012-02-09 40 views
13

我有超過500萬的會話文件在/var/lib/php5 我想用rm *刪除這個文件夾中的所有文件,但我不確定是否有其他文件,而不是該目錄中的會話文件不應該被刪除。我可以安全地刪除/ var/lib/php5中的所有內容嗎?

通過SSH,它花了幾分鐘時間來使文件數,我不知道我可以通過那裏所有這些隨機文件名導航。 安裝程序是ubuntu lucid linx,apache 2和php5。在最常見的設置中有/var/lib/php5其他文件夾/文件,我不應該刪除?

編輯我想刪除這些文件的原因是因爲我將會話處理移動到數據庫,並且不再需要任何文件。

回答

13

讓PHP的gc自己執行清理。找到php.ini並將session.gc_probability更改爲更大的內容,保存並重新啓動Apache(調用任何php腳本)。這裏說http://somethingemporium.com/2007/06/obscure-error-with-php5-on-debian-ubuntu-session-phpini-garbage

在Debian和Ubuntu,在/ var/lib中/ PHP5,其中會話數據存儲, 有drwx-WX-重量權限,只能由一個cron 腳本進行清洗。所以,軟件包維護人員會禁用自動會話垃圾回收 。

或者你可以嘗試把ini_set('session.gc_probability', 100); session_start();(如果你的session.gc_divisor等於100)在腳本中的一個,並調用它。最好的方法是放入空php文件,因爲它可能會執行很長一段時間的清理。

ps:我也會嘗試離開session.gc_probability 1並將session.gc_divisor設置爲1.它應該在每次運行時調用gc,但您只需要它用於目錄清理。

並檢查您的cron /etc/cron.d/php5 - 它應該每半小時運行一次以清除/ var/lib/php5 /目錄中的會話文件。

PPS:發現有趣的評論

這不會禁用它(它被註釋掉)。 引擎中的默認設置仍在使用 - phpinfo()顯示值爲1.在Debian(以及Ubuntu)中垃圾回收存在 問題,但由於PHP想要清理已被移除的垃圾,因此存在 問題通過 cron腳本。這會導致可能會在 不幸頁面上顯示的錯誤。

+0

更改這些設置將刪除所有舊會話文件?事實上,我只是想盡快擺脫所有文件,但會話的生命週期卻被設置爲2周。 – Moak 2012-02-09 05:41:53

+0

@Moak是的,它會刪除過時的數據。你也可以改變清理運行的時間。順便說一句,你有會議文件名稱中的任何特定部分?如果你願意,你可以過濾它。無論如何,請檢查cron作業並運行它。 – Cheery 2012-02-09 05:42:56

+0

在我的情況下(SuSE 11.2)它起初並不奏效。當我發佈'rcapache2 reload'時,我發現'php.ini'的變化得到應用。 – Paramaeleon 2013-12-19 08:00:12

23
cd /var/lib/php5 
find . -name "sess_*" -print | xargs rm -v 
+1

爲什麼不只是'rm -v/var/lib/php5/sess_ *'? – 2012-08-04 18:08:43

+13

由於文件數量太多,「rm」會提前退出,出現「參數列表太長」的錯誤,而實際上並沒有刪除任何文件。使用'find'查找文件,並將結果一個接一個地輸入到'xargs'步驟中。 [更多信息](http://www.moundalexis.com/archives/000035.php) – 2012-08-26 11:43:13

0
cd /var/lib/php5 
sudo find . -name "sess_*" -print |sudo xargs rm -v 

這在我的情況下工作過。

0

在我的Ubuntu電腦,位於/ var/lib中/ PHP5,有SESS ID文件: sess_a7kjdaojmneuhcgslj

如果我嘗試使用命令來刪除此文件:

須藤RM sess_a7 *

我收到一條錯誤消息,說沒有這樣的文件。我不得不使用全名:

須藤RM sess_a7kjdaojmneuhcgslj

它的工作。這是我的兩分錢。

相關問題