Дисковые квоты (quota) Ubuntu 12.04

Дата: 17/06/2014
Тема: Linux

Дисковые квоты используются для наблюдения за использованием дискового пространства на разделах и ограничения его использования, тем самым исключается возможность занять все дисковое пространство системы одним пользователем. Если имеется более одного раздела, доступного пользователю, квотирование должно быть настроено на каждом из них.

Установка

#apt-get install quota

Настройка

Есть директория /home смонтированная  на отдельном разделе жесткого диска /dev/sda2 размером  100Гб, что бы включить квотирование на данном разделе необходимо в опциях монтирования добавить параметр "usrqouta"

Отредактируйте файл /etc/fstab

#nano /etc/fstab/

добавим "usrqouta" к опциям раздела /home.

замените "usrquota" на "grpquota", если нужна поддержка квот для групп или оба значения вместе "usrquota,grpquota"

/dev/sda2  /home  ext4 errors=remount-ro,usrquota 0 2

Перемонтируйте раздел /home или перезагрузите компьютер

#mount -o remount /home

Создание файла квот

#quotacheck -сavumf

Включаем квоты для разделов

#quotaon -a
#quotaon -pa
group quota on / (/dev/disk/by-uuid/aeca8230-d477-44d7-b9fb-8f3c5c156e67) is off
user quota on / (/dev/disk/by-uuid/aeca8230-d477-44d7-b9fb-8f3c5c156e67) is on

Теперь можно выставлять квоты для пользователей

Редактирование квот пользователя

Ограничим пользователя 40Мб

#edquota -u quser

Disk quotas for user quser (uid 1001):

  Filesystem                                                 blocks       soft       hard     inodes     soft     hard

  /dev/disk/by-uuid/aeca8230-d477-44d7-b9fb-8f3c5c156e67       3092          0      40000         15        0        0

 

blocks: Количество блоков - занятое место пользователем в блоках длиной 1kB.

inodes: Количество инодов - файлов/каталогов пользователя.

soft: Максимальное количество blocks/inodes, которое пользователь может иметь. Если используется период отсрочки "grace period", то вместо жесткого ограничения, пользователь, превысивший данный лимит, получит лишь сообщение об этом, по прошествии "grace period" пользователь не сможет писать на диск пока использованное пространство не будет меньше данного лимита.

Значение 0 отключает данную опцию.

hard: Максимальное количество blocks/inodes, которое пользователь может иметь. Это жесткое ограничение, пользователь не может его превысить.

Значение 0 отключает данную опцию.

или установить лимиты одной командой
#setquota -u quser 0 40000 0 0 /home

1.block soft limit = 0

2.block hard limit = 40000byte

3.inodes soft limit = 0

4.inodes hard limit = 0

 

Usage:
  setquota [-u|-g] [-rm] [-F quotaformat] <user|group>
        <block-softlimit> <block-hardlimit> <inode-softlimit> <inode-hardlimit> -a|<filesystem>...
  setquota [-u|-g] [-rm] [-F quotaformat] <-p protouser|protogroup> <user|group> -a|<filesystem>...
  setquota [-u|-g] [-rm] [-F quotaformat] -b [-c] -a|<filesystem>...
  setquota [-u|-g] [-F quotaformat] -t <blockgrace> <inodegrace> -a|<filesystem>...
  setquota [-u|-g] [-F quotaformat] <user|group> -T <blockgrace> <inodegrace> -a|<filesystem>...

-u, --user                 set limits for user
-g, --group                set limits for group
-a, --all                  set limits for all filesystems
    --always-resolve       always try to resolve name, even if is
                           composed only of digits
-F, --format=formatname    operate on specific quota format
-p, --prototype=protoname  copy limits from user/group
-b, --batch                read limits from standard input
-c, --continue-batch       continue in input processing in case of an error
-r, --remote               set remote quota (via RPC)
-m, --no-mixed-pathnames      trim leading slashes from NFSv4 mountpoints
-t, --edit-period          edit grace period
-T, --edit-times           edit grace times for user/group
-h, --help                 display this help text and exit
-V, --version              display version information and exit

Редактирование периода отсрочки

#edquota -t
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/disk/by-uuid/aeca8230-d477-44d7-b9fb-8f3c5c156e67               7days               7days

Во время "grace period" система будет лишь предупреждать тех пользователей у которых установлен "soft limit", но не ограничивать их. Могут быть использованы секунды, минуты, часы, дни, недели и месяцы (seconds, minutes, hours, days, weeks, months).

Значение 0 отключает данную опцию. Отчет по квотам на файловой системе.

#repquota  -us /home
*** Report for user quotas on device /dev/disk/by-uuid/aeca8230-d477-44d7-b9fb-8f3c5c156e67
Block grace time: 00:00; Inode grace time: 00:00
                        Space limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --   1776M      0K      0K          74606     0     0
daemon    --     60K      0K      0K              4     0     0
man       --   1496K      0K      0K            156     0     0
www-data  --   1072K      0K      0K            146     0     0
libuuid   --     24K      0K      0K              2     0     0
syslog    --   1168K      0K      0K             22     0     0
mysql     --  32668K      0K      0K            415     0     0
bind      --     12K      0K      0K              3     0     0
landscape --      4K      0K      0K              1     0     0
quser     --   4236K      0K  40000K             15     0     0

 

Usage:
repquota [-vugsi] [-c|C] [-t|n] [-F quotaformat] (-a | mntpoint)

-v, --verbose               display also users/groups without any usage
-u, --user                  display information about users
-g, --group                 display information about groups
-s, --human-readable        show numbers in human friendly units (MB, GB, ...)
-t, --truncate-names        truncate names to 9 characters
-p, --raw-grace             print grace time in seconds since epoch
-n, --no-names              do not translate uid/gid to name
-i, --no-autofs             avoid autofs mountpoints
-c, --batch-translation     translate big number of ids at once
-C, --no-batch-translation  translate ids one by one
-F, --format=formatname     report information for specific format
-h, --help                  display this help message and exit
-V, --version               display version information and exit

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

#quotacheck -avumf

для отдельного раздела

#quotacheck -vumf /home

Более точную статистику по квотам можно получить, когда анализируемая файловая система не сильно загружена. Поэтому стоит назначать запуск задания cron во время, когда файловая система (системы) используется меньше всего.

#nano /etc/crontab
00 2   * * *   root    /sbin/quotacheck -avumf


Это статья "Домашняя страничка Andy"
https://andy.od.ua

URL этой статьи: https://andy.od.ua/news_51.html

Яндекс.Метрика