Skip to content


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

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

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

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

    или

    1. quotacheck -vguma
  5. Включаем квоты для файловой системы:
    1. quotaon -v /dev/hda2
  6. Расставляем квоты для определенных пользователей/групп. Пример:
    1. edquota -u user1
    2. Disk quotas for user user1 (uid 501):
    3. Filesystem    blocks       soft       hard     inodes     soft     hard
    4. /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. Пример:

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

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

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

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

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

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

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

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

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

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

    1. if [ -x /sbin/quotacheck ]; then
    2. echo "Checking root filesystem quotas"
    3. /sbin/quotacheck -v -a
    4. fi
    5. ...
    6. if [ -x /usr/sbin/quotaon ] then
    7. echo "Turning on quota."
    8. /usr/sbin/quotaon -v -a
    9. fi

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

    Подробное описание автоэлектрик у нас. . http://otzverey.ru/ ультразвуковые отпугиватели собак оптом купить. .

Размещено в категории *nix. Теги: , , .

Комментариев: 1

Чтобы быть всегда в курсе здесь происходящего, Вы можете подписаться на RSS feed для комментариев на эту заметку.

  1. OpenVZFan said

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

Some HTML is OK

(required)

(required, but never shared)

, или ответить через trackback.

Страница 1 из 11