С чего начать Первые шаги трек · 15 ступеней
Linux Labs

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

3 мин Linux · quota

Лимиты места и числа файлов на пользователя/группу — включение, настройка, отчёты.

Шпаргалка

5 команд Версия для печати
  • sudo setquota -u user 5G 6G 0 0 /data soft/hard по месту
  • sudo edquota -u user интерактивно в редакторе
  • sudo edquota -t настройка grace-периода
  • quota -u user квота и использование
  • sudo repquota -s /data отчёт по ФС

Обзор

Квоты ограничивают, сколько места (блоков) и файлов (inode) может занять пользователь или группа на ФС. Полезно на общих серверах, чтобы один юзер не забил диск (см. disk-usage).

Лимиты бывают soft (можно превысить на grace-период с предупреждением) и hard (жёсткий потолок, запись блокируется).

Конфигурация

bash
sudo apt install quota
# в /etc/fstab добавить опции к нужной ФС: usrquota,grpquota
#   /dev/sdb1  /data  ext4  defaults,usrquota,grpquota  0  2
sudo mount -o remount /data
sudo quotacheck -cugm /data       # создать файлы учёта (aquota.user/group)
sudo quotaon -v /data             # включить квоты
sudo quotaon -p /data             # проверить, включены ли

Рецепты

2

Лимиты и отчёты

bash
# задать лимиты пользователю (блоки: soft hard, inode: soft hard):
sudo setquota -u alice 5G 6G 0 0 /data        # soft=5G hard=6G по месту, inode без лимита
sudo setquota -u alice 0 0 10000 12000 /data  # лимит по числу файлов
sudo edquota -u alice             # интерактивно в редакторе
sudo edquota -t                   # настроить grace-период (для soft)
sudo edquota -p alice -u bob      # скопировать квоты alice пользователю bob

# отчёты:
quota -u alice                    # квота и использование пользователя
sudo repquota -a                  # отчёт по всем ФС с квотами
sudo repquota -s /data            # человекочитаемо (-s)

xfs-квоты

На xfs механизм иной — квоты включаются опцией монтирования, не quotacheck:

bash
# /etc/fstab:  /data xfs defaults,uquota,gquota 0 0   (или pquota для проектных)
sudo xfs_quota -x -c 'report -h' /data
sudo xfs_quota -x -c 'limit bsoft=5g bhard=6g alice' /data

Неполадки

4

setquota: не работает / «not found»

ФС смонтирована без usrquota/grpquota — проверь mount | grep -i quota. Либо не сделан quotacheck/quotaon. На xfs это не сработает — там xfs_quota и опции uquota/gquota/pquota.

Пользователь упёрся в лимит

quota -u user / repquota покажут текущее и потолок. Подними setquota/edquota или попроси почистить. На soft-лимите есть grace-период (edquota -t).

Квоты «слетели» после ребута

quotaon не выполняется сам — убедись, что опции в /etc/fstab и юнит quotaon включён (на ext). На xfs квоты активируются монтированием с нужными опциями.

quotacheck требует отмонтировать

Лучше считать на спокойной/ro ФС. На активной — quotacheck -m (force), но точность ниже; идеально — в single-user или с remount ro.

См. также

  • disk-usage — Куда делось место и inode — df, du, поиск крупных файлов, ловушки.
  • filesystems — Создание ФС, метки и UUID, проверка fsck, типы ext4/xfs.
  • users-groups — Учётные записи, группы, членство; useradd/usermod, /etc/passwd и /etc/group.
Загрузка…