Задать вопрос
antonydevanchi
@antonydevanchi
10 лет в айтишке

Вычислить занятое место базами данных

Такая ситуэйшн: есть квоты на /home/%username% и все прекрасно работает, юзверь не может забить весь диск своими данными.

Но эта квота не отрабатывает на MySQL базы которые хранятся в /var/lib/mysql. Соответственно пользователь может гигабайтной базой подложить свинью серверу.

Как можно решить эту проблему? Как, допустим, посчитать место занимаемое пользовательскими базами? Или Как их можно перенести в /home/%username%?

P.S.
/home/%username% — chroot со своим окружением.
  • Вопрос задан
  • 2651 просмотр
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@cat_crash
Не факт что панацея, но что пришло в голову — положить файлы базы в /home/%username% и сделать симлинки на них в /var/lib/mysql
НО стоит призадуматься что произойдет с файломи БД когда они упрутся в квоту и система не даст больше записывать. Это может произойти довольно быстро, т.к. при удалении строк данные по умолчанию НЕ удаляются.
Ответ написан
Комментировать
В статье www.cyberciti.biz/tips/linux-unix-setting-up-mysql-database-quotas.html описывается практически то, что предложил cat_crash выше, я правда боюсь, что когда база упрется в квоту — она может поламаться… Так же там в статье есть ссылки на другие решения этой проблемы. Самый простой вариант — по крону вызывается скрипт, который считает сколько места занимают базы пользователя и если объем превышает порог — забирает у пользователя права на CREATE и INSERT для его базы, когда объем упадет ниже порога — права возвращаются.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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