Первоначально этот вопрос возник из-за проблем с версией 3.13 команды quota
, которая по сути бесполезна в качестве инструмента для определения конечной информации о квоте. Например, если alice
запускает quota
, она может увидеть вывод так:
Disk quotas for user alice (uid 100):
Filesystem blocks quota limit grace files quota limit grace
fileserver.example.com:/staff/b/bob
9254720 9728000 10240000 119768 0 0
Алиса справедливо спросила бы, как это связано с ее учетной записью.
Оказывается, что умы, стоящие за пакетом quota-utils
, наконец-то осознали проблемы, присущие инструменту; с версией 4.00 (доступна в Fedora 16) доступно несколько новых опций, которые превращают команду quota
в нечто, производящее полезную информацию.
Особый интерес представляет опция -f
:
-f, --filesystem-list display quota information only for given filesystems
Теперь пользователь может запустить:
quota -f ~
И получите информацию о квоте для их домашнего каталога. Кроме того, опция -s
будет отображать «удобочитаемые» цифры вместо того, чтобы отображать все в виде блоков.
Для Алисы это может выглядеть так:
$ quota -s -f ~
Disk quotas for user alice (uid 100):
Filesystem blocks quota limit grace files quota limit grace
fileserver.example.com:/staff/a/alice
9038M 9500M 10000M 120k 0 0
Кроме того, есть две опции, которые значительно упрощают обработку вывода из quota
в сценарии:
- Опция
-w
запрещает перенос строки, если имя "файловой системы" слишком длинное.
- Опция
-p
отображает 0
в течение льготного времени, если пользователь не находится в ситуации превышения квоты. Это означает, что всегда есть одинаковое количество полей (тогда как в предыдущей версии quota
количество полей могло варьироваться в зависимости от ситуации).
Объединяя все вышеперечисленное, мы получаем что-то вроде этого:
$ quota -wp -f ~
Disk quotas for user alice (uid 100):
Filesystem space quota limit grace files quota limit grace
fileserver.example.com:/staff/a/alice 9254720 9728000 10240000 0 119768 0
Что намного более полезно для автоматизации.