我在/var/lib/php5
中有超过500万个会话文件
我想使用rm *
删除此文件夹中的所有文件,但是我不确定该目录中是否存在除了不应删除的会话文件之外的其他文件。
通过SSH花了几分钟来计算文件数,我不确定我是否可以使用所有这些随机文件名在那里导航。
设置是ubuntu lucid linx,apache 2和php5。在最常见的设置中,/var/lib/php5
中还有其他文件夹/文件我不应该删除吗?
编辑我想删除文件的原因是因为我将会话处理移到了数据库而不再需要任何文件。
答案 0 :(得分:23)
cd /var/lib/php5
find . -name "sess_*" -print | xargs rm -v
答案 1 :(得分: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-wt的权限,只能由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 /目录中的会话文件。
这不会禁用它(它已被注释掉)。默认范围内 引擎仍在使用 - phpinfo()显示的值为1.有一个 Debian(以及Ubuntu)中垃圾收集的问题,但那就是 由于PHP想要真空吸尘已经被移除的垃圾 cron脚本。这会导致可能显示的错误 不幸的页面。
答案 2 :(得分:0)
cd /var/lib/php5
sudo find . -name "sess_*" -print |sudo xargs rm -v
这在我的案例中有效。
答案 3 :(得分:0)
在我的ubuntu计算机上,在/ var / lib / php5,有一个sess ID文件: sess_a7kjdaojmneuhcgslj
如果我尝试使用以下命令删除此文件:
sudo rm sess_a7 *
我收到一条错误消息,说没有这样的文件。我不得不使用全名:
sudo rm sess_a7kjdaojmneuhcgslj
有效。这是我的两分钱。
答案 4 :(得分:0)
在PHP7
中有效
cd /var/lib/php/sessions/
sudo find . -name "sess_*" -print |sudo xargs rm -v
如果您使用的是CODEIGNITER
,请尝试使用以下命令。
cd /var/lib/php/sessions/
sudo find . -name "ci_*" -print |sudo xargs rm -v
sudo find . -name "cises*" -print |sudo xargs rm -v