Очень много файлов в tmp/ No space left

psylosss

Новичок
Очень много файлов в tmp/ No space left

Последнее время РНР довольно часто стал выдавать следующую ошибку:

ERROR 2: session_start() [<a href='function.session-start'>function.session-start</a>]: open(/var/www/myhost/data/tmp/sess_7696bbaccxxxxxxxxxf798ab3b4d, O_RDWR) failed: No space left on device (28)
При этом
~# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 19218432 9297359 9921073 49% /
tmpfs 128426 2 128424 1% /lib/init/rw
udev 128426 427 127999 1% /dev
tmpfs 128426 1 128425 1% /dev/shm х
и

~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 145G 49G 89G 36% /
tmpfs 502M 0 502M 0% /lib/init/rw
udev 10M 32K 10M 1% /dev
tmpfs 502M 0 502M 0% /dev/shm
Понятно, что сам РНР тут ни при чем: сервер по какой-то причине не может работать с папкой tmp/

Размер папки (именно папки как файла, а не сумма размеров файлов, которые в ней лежат) - 810 мегабайт. Понятно, что файлов в ней просто дофига и больше, и из-за этого сервер еле ворочает этой папкой. rm tmp/* не помогает: реакции на эту команду - ноль.

Что делать? Куда копать? Подскажите кто сталкивался
 

psylosss

Новичок
а причем здесь тогда этот форум?
при том, что здесь собрались специалисты, которые не только мануал РНР читали. Поиск по гуглу ничего не дал. Может, плохо ищу? Поиск по тексту ошибки ничего не дал.
 

Yuriy_S

-=PHP-Club=-
/var/www/myhost/data/tmp/

это у тебя на каком разделе диска находится?

-~{}~ 25.07.08 19:55:

p.s. сайт на хостинге? может просто квота закончилась?
 

psylosss

Новичок
/dev/sda1

-~{}~ 25.07.08 19:58:

нет, выделенный сервер. Квота на папку не установлена. Я просто немного в замешательстве: как работать с таким огромным количеством файлов в одной папке?

И вопрос, который я задам после того, как основная проблема решится: как могло получиться так, что в одной папке оказалось столько файлов? Похоже, там почти все - файлы сессий.

-~{}~ 25.07.08 20:03:

Вот еще один облом:
Код:
~# ls /var/www/myhost/data/tmp/ > /var/www/myhost/data/files_tmp.txt
ls: memory exhausted
 

Yuriy_S

-=PHP-Club=-
ага, не хватает памяти что бы из буфера перекинуть в текстовый файл.

а получиться так могло по разным причинам, одной из которых может быть неправильная настройка php.ini. В нем есть параметр, отвечающий за очистку "мусора" (expire time).

-~{}~ 25.07.08 20:12:

если у тебя tmp директория смонтирована как отдельный раздел, то можно просто форматнуть её (mkfs, etc...)
 

whirlwind

TDD infected, paranoid
ps и top глянь
в коде нет ничего наподобии

include('http://
file_get_contents('http://

?
 

psylosss

Новичок
ps и top чисты. Вобщем сделал следующее:

Все, я сделал примитивно тупо! перенес tmp в другое место, создал новую папку. Старую tmp поставил удаляться из-под mc (удаляется потихоньку). Новая tmp сразу же начала зарастать нулевыми файлами. На SE посоветовали выполнять на кроне

cd /var/www/user/data/tmp/; find -size 0 | xargs rm >/dev/null 2>&1

т.к. проблема с нулевыми файлами сессий на дебиане - не редкость, как выяснилось.
 

dimagolov

Новичок
вот за что люблю FreeBSD и не люблю Linux, так за то что во фряхе все по дефолту делиться на партиции, и что /tmp, что /var это отдельные партиции и одни логи или одни tmp не могут засрать раздел с чем-то нужным до смерти.
 

whirlwind

TDD infected, paranoid
dimagolov ну, вроде в линухе тож такое можно запросто..

psylosss ну если тупо, то надо выяснить кто создает файлы. Почикай-ка iptables или че там есть на предмет подсчета syn-пакетов. Мож тя банально ддосят?
 
Сверху