Партнер данного материала Telegram-канал Админим с Буквой
Тема статьи небольшая, но информация данная необходима для понимания ограничений на дисках в операционной системе Linux. В данной статье рассмотрим:
- Установка квоты
- Редактирование квоты
- Просмотр отчетов по квотам
Квоты – это ограничения, налагаемые системным администратором на использование дискового пространства в операционных системах. Они позволяют гибко управлять ограниченным ресурсом для сервера свободным местом на жестком диске. Квоты можно устанавливать, как на отдельных пользователей, так и на группы пользователей. Для конфигурации и управления квотами используются следующие команды:
quotaon
– включение квотыquotaoff
– выключение квотыedquota
– редактирование квотыrepquota
- отчет по квотам
У Windows Server, конечно намного богаче инструментарий по работе с квотами. Для этого выделена целый File Server Resource Manager, но в данной статье мы посмотрим, как это работает в Linux системах на примере Ubuntu Server.
У меня есть смонтированый раздел /dev/sdc1
в папку /mnt/hard
.
Для того, чтобы работать с квотами, необходимо поставить пакет apt-get install quota
.

Для того, чтобы использовать квоты, нам необходимо добавить монтирование данного раздела в файл /etc/fstab
. Добавляем следующую строчку:
/dev/sdc1 /mnt/hard auto rw,user,auto,usrquota,grpquota 0 0
Где, раздел, куда монтируем, автоопределение файловой системы, раздел для записи, разрешаем монтирование пользователям, раздел будет монтироваться автоматически при старте системы и включаем пользовательскую квоту и групповую.

Строка будет выглядеть как на картинке. Сохраняем и перезагружаем.
Для начала выключаем все квоты, если они когда-нибудь ставились, для чистоты настройки quotaoff /mnt/hard
. Следующая команда quotacheck
– которая создаст квоту для пользователей и групп, у нее большой функционал, но мы ее используем именно в таком ключе. Квоту мы можем создать только полностью на примонтированный раздел – это связанно с файловой системой ext4
. Существуют и другие файловые системы, в которых мы можем ставить квоты на папки и работать более гибко, например xfs
. quotacheck –cug /mnt/hard
. В данном случае мы квоту ставим полностью на раздел, который смонтирован в /mnt/hard
.

И как видим команда создала 2 файла aquota.group
и aquota.user
. Это файлы с настройками квот.
Это двоичные файлы и при попытке их посмотреть, например, cat aquota.user
мы увидим, нечто не читаемое. Для редактирования данных фалов настройки текстовый редактор не подойдет, и мы будем использовать отдельную команду edquota – u siadmin
. Т.е команда -u
указывает , что мы редактируем для пользователя и далее указывается непосредственно пользователь.

Вот так выглядит редактирование.
Мы видим, что здесь есть blocks
– число 1К
блоки, soft
– мягкая квота, это квота, которую пользователь может превысить, но не более чем на неделю, hard
– жесткая квота, это квота которую пользователь не сможет превысить вообще. Получается так, если пользователь siadmin
поставит soft 10
и hard 30
, и запишу файлик в 15КБ, то неделю моя квота терпит, а через неделю система скажет, что квота превышена и будет требовать очистки. Если создать сразу файл 40 КБ, то квота скажет, что нету места на жестком диске. Так же можно поставить квоту на inodes
, т.е на уникальные идентификаторы файлов, каждому файлу присваивается уникальный идентификатор, следовательно, пользователь не может превысить их количество по квоте. Когда мы выполняем команду edquota
, то для открытия открывается редактор, установленный по умолчанию. В данном случае редактор nano
. Как было уже написано мягкая квота устанавливается на неделю и после чего начинает блокировать, если мы не уменьшили размер файлов или не уменьшили их количество, смотря какая квота была выставлена. Мы можем данный параметр изменить, выполнив sudo edquota –t
.

Думаю, открытый файл на редактирование, тут все интуитивно понятно. Меняем и сохраняем.
Мы в файле /etc/fstab
указали, что файловая система монтируется с применением квот, потом командой quotacheck
создали квоты, а затем указали ограничения edquota
. Но до сих пор квоты не включены, квоты не работают! Для того, чтобы квоты заработали используется команда sudo quotaon /mnt/hard
. И как только мы эту команду дали, файлы созданные aquota.group
и aquota.user
будут отредактированы и квоты заработают.
Чтобы посмотреть, как работают квоты, создадим файл текстовый. Но т.к монтировался раздел из под root, то необходимо сменить владельца папки /mnt/hard/
. Это можно сделать командой chown siadmin:root /mnt/hard
. И теперь спокойно можно создать файл touch test.txt
. Теперь добавим в файл информацию несколько слов. edquota – u siadmin
выполняем и видим, что число блоков изменилось. Добавим еще информации, еще раз поменяется количество блоков. Создадим еще один файл – изменится число inodes
. Далее простым копирование увеличиваем количество файлов, пока не сработает квота.

Соответственно мы одновременно можем использовать квоты и по размеру, и по inodes
. Очень важный момент. Поднимаемся в корневую папку /
. Команда sudo repqouta /mnt/hard
покажет отчет по квотам.

Есть еще интересная команда - man warnquota
.

Команда отправляет e-mail при превышении квоты. Но для этого необходимо настроить почтовый smtp сервер, который будет отправлять почту.