Задать вопрос
alex5e
@alex5e

Как решить проблему с переполнением tmp в Ubuntu?

На сервере с Ubuntu хостится сайт. Раз в две недели стабильно падает с ошибкой
SQLSTATE[HY000]: General error: 1 Can't create/write to file '/tmp/#sql_3f0_0.MYD' (Errcode: 28)
Я так понимаю, что забивается папка tmp. Причем перезапуск VPS не помогает. Только rm -r tmp Подскажите можно как-нибудь регулировать подобное поведение, чтобы предотвратить падение сайта?

В директории файлы sess_ с содержимым __flash|a:0:{}
  • Вопрос задан
  • 3548 просмотров
Подписаться 1 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 4
mbeloshitsky
@mbeloshitsky
Вебдев, систем оперейшонс, ж.д. автоматика
Вам нужно помониторить чем забивается /tmp, после чего найти безопасный способ очистки этого и реализовать в виде задачи для cron.
Ответ написан
zolt85
@zolt85
Программист
Если диски разбиты правильно, проблем быть не должно. Если /tmp монтируется не в отдельный раздел, то тут проблема может быть с переполнением рутового (/) раздела в принципе. Сам с таким столкнулся по неопытности.
Как вариант можно сменить точку монтирования tmp на более просторный диск:
останавливаем апач и мускул
# /etc/init.d/httpd stop; /etc/init.d/mysql stop

делаем бекап папки tmp
# cp -rp /tmp /tmp.bak

создаем раздел размером 2 Gb, например (пути пишем свои)
# dd if=/dev/zero of=/usr/temp-disk bs=2M count=1024


создаем файловую систему командой mke2fs
# mke2fs -j /usr/temp-disk

размонтируем предыдущий tmp
# umount /tmp

монтируем tmp в новый раздел
# mount -t ext3 -o rw,noexec,nosuid,loop /usr/temp-disk /tmp


выставляем права
# chmod 1777 /tmp

что бы проверить, что все хорошо выполняем
# mount

восстанавливаем содержимое tmp
# cp -rp /tmp.bak/* /tmp

запускаем апач и мускул
# /etc/init.d/httpd start; /etc/init.d/mysql start

что бы tmp монтировался правильно при перезагрузке сервера, в /etc/fstab заменяем запись про монтирование tmp
/usr/temp-disk /tmp ext3 rw,noexec,nosuid,loop 0 0

Как-то так.
Подсмотрел тут
Ответ написан
Комментировать
А еще можно закинуть сессии в тот же memcached.
Или попробуйте штуку вроде tmpwatch
Ответ написан
Комментировать
shambler81
@shambler81 Куратор тега Linux
Короче смотри что у тебя происходит
У тебя проблема в том что ты указал папку /tmp в php.ini выставил 777 и думаешь что все пучком. На самом деле у тебя не хватает прав на удаление этих файлов!
Такая хрень уже была
Верни дефолтную настройку проверь заработало ли?
Все сессии у тебя тупо не удаляются.
не нужно думать чет крутить с папкой тебе нужно перепилить php.ini и работать с правами на удаление
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы