Skip to content


Дисковые квоты в Linux

Включение дисковых квот в Linux.
Взято с http://www.yolinux.com/TUTORIALS/LinuxTutorialQuotas.html

  1. Редактируем файл /etc/fstab, добавляя параметры "usrquota" и/или "grpquota" в строки для нужного дискового раздела.
    Примеры:

    /dev/hda1     /home   ext3    defaults,usrquota              1    1
    /dev/hda2     /home   ext3    defaults,usrquota,grpquota     1    1
  2. Перемонтируем файловую систему. Пример:
    /bin/mount -o remount /hda2
  3. Проверяем, что квоты включились, заглядывая в /etc/mtab. Там должно быть что-то вроде:
    /dev/hda2 / ext3 rw,usrquota,grpquota 0 0
  4. Запускаем процесс подсчета текущего использования дискового пространства, после чего должны создаться/обновиться файлы /aquota.user, /aquota.group в корне файловой системы:
    quotacheck -vgum /partition

    или

    quotacheck -vguma
  5. Включаем квоты для файловой системы:
    quotaon -v /dev/hda2
  6. Расставляем квоты для определенных пользователей/групп. Пример:
    edquota -u user1
    Disk quotas for user user1 (uid 501):
    Filesystem    blocks       soft       hard     inodes     soft     hard
    /dev/hda5       1944       5120      10240        120        0        0

    blocks - блоки по 1 килобайту
    soft - максимальное количество блоков/inodes, которые пользователь может использовать, перед тем, как будет сгенерировано предупреждение и начнется отсчет "периода терпимости" (grace period). Если установлено в "0" (ноль), то лимита нет.
    hard - максимальное количество блоков/inodes, которые пользователь может использовать вообще.
    В примере лимит установлен в 10 мегабайт. Для редактирования групповых квот использовать edquota с ключом -g.

    "Grace Period" задается с помощью edquota -t, это промежуток времени, перед тем, как soft limit преваратиться в тыкву hard limit. Единицы: sec, min, hour, day, week и month. Пример:

    Grace period before enforcing soft limits for users:
    Time units may be: days, hours, minutes, or seconds
    Filesystem             Block grace period     Inode grace period
    /dev/hda5                     7days                  7days

    То есть в примере выше пользователь user1 может использовать до 5-ти МБ дискового пространтва на постоянной основе без каких либо прочих ограничений. Когда общий размер файлов превысит 5МБ дискового пространства, начнёт действовать grace period (7 дней по умолчанию), в течение которых user1 может занять до 10МБ дискового пространства. По истечении 7-ми дней с момента превышения лимита в 5МБ создание новых файлов будет недоступно до тех пор, пока user1 не удалит часть своих файлов, чтобы суммарный их объём не превышал 5МБ.

  7. Просмотр квот. Команды quota, repquota. Примеры:
    quota -u user1
    Disk quotas for user user1 (uid 501):
    Filesystem  blocks  quota   limit   grace files  quota   limit   grace
    /dev/hda6      992  50000   55000            71  10000   11000

    Получить отчет по всем пользователям, что превысили квоту:

    quota -q
    repquota -a
    *** Report for user quotas on device /dev/hda5
    Block grace time: 7days; Inode grace time: 7days
    Block limits                File limits
    User            used    soft    hard  grace    used  soft  hard  grace
    root      -- 4335200       0       0         181502     0     0
    bin       --   15644       0       0            101     0     0
    ...
    user1     --    1944       0       0            120     0     0

    quotacheck следует запускать периодически, особенно после аварийных выключений сервера.

    У edquota есть также интересный ключик -p, который позволяет задавать квоты массово на основе шаблона. Пример:

    edquota -p user1 `awk -F: '$3 > 499 {print $1}' /etc/passwd`

    Здесь для пользователей с uid >= 500 будут установлены такие же квоты, как и у пользователя user1.

    В Redhat quotacheck и quotaon запускаются из /etc/rc.d/rc.sysinit:

    if [ -x /sbin/quotacheck ]; then
    echo "Checking root filesystem quotas"
    /sbin/quotacheck -v -a
    fi
    ...
    if [ -x /usr/sbin/quotaon ] then
    echo "Turning on quota."
    /usr/sbin/quotaon -v -a
    fi

    Чтобы пользователи, превысившие лимиты, получали уведомление об этом по email, следует периодически из cron-а запускать команду warnquota.

Posted in *nix.

Tagged with , , .


One Response

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. OpenVZFan says

    Вот только квоты не работают, если установлено OpenVZ-ядро. В гостевых системах работает, а в основной - нет. И как побороть - неизвестно. Может кто подскажет?

You must be logged in to post a comment.