Официальная возможность получить лицензионный софт бесплатно.
Giveaway of the Day
Это не реклама!

Щелкните для получения прогноза по Биробиджану


Показаны сообщения с ярлыком размер ящика. Показать все сообщения
Показаны сообщения с ярлыком размер ящика. Показать все сообщения

понедельник, 28 июня 2021 г.

Zimbra: квоты и размер почтового ящика

 Понадобилось изменить и проверить размеры места, выделяемого пользователям. Общий для всех класс обслуживания разрешает до 450М. Но некоторым этого не хватает, а значит приходится отдельным личностям переопределять квоты.

В GUI пункт с размерами п/я зарыт слишком глубоко, поэтому решил найти способ получить эти сведения в CLI для возможной автоматической обработки.

Были использованы материалы:

  1. https://nwildner.com/posts/2019-09-27-zimbra-cli-tips/
  2. https://webhostinggeeks.com/howto/how-to-show-mailbox-size-on-zimbra-via-command-line/
  3. мануал по awk (оказалось, я забыл бейсик, пришлось лезть в шпаргальник)
  4. собственный пост по близкой тематике

Где хранится индивидуальная переопределенная квота, я не проверял.

Итак: zmprov gqu (в первой ссылке, кстати, эта команда написана неправильно - qgu вместо gqu, get quota usage) выводит списком почтовые ящики на сервере в формате "адрес квота занято", например "gates_wh@contoso.ru 471859200 1546199" - "пользователю В.Г. Гейтс выделено 450М, из которых занято полтора".

То есть, размеры выводятся в байтах, а дальше потребитель информации решает, в каких единицах ее использовать.

Для более-менее удобного анализа родил такую хитровыделанную команду:

zmprov gqu localhost|sort -nr -k2,3|awk {'printf "%.2fK:%.2fK=%2.2f%% %s\n", $3/1024, $2/1024, $3/$2*100, $1'}

  1. берем данные с этого же сервера
  2. сортируем по убыванию сначала квоты, потом - использованного места (2-е и 3-е поля в выводе gqu)
  3. выводим в виде "x.xxK:z.zzK=y.yy% адрес", увеличивая порядок единиц для удобочитаемости - килобайты вместо байтов, например "1509.96K:460800.00K=0.33% gates_wh@contoso.ru", то есть, у тов. Гейтса занято 0.33% от выделенной ему квоты

На этом пока всё

P.S.

Усовершенствованная версия команды для отправки отчетов и т.п.

zmprov gqu localhost|sort -nr -k2|awk {'printf "%.2fK:%.2fK=%2.2f%% %s\n", $3/1024, $2/1024, $3/$2*100, $1'} |grep -v "=-nan%"|sort -rn -t \=  -k2 |head -n 10

отличия: убираем недопустимые значения, например, деление на ноль, потом сортируем по процентажу и выводим только топ-10

сдуру решил, что "-d" у sort задает разделитель полей, и долго не мог понять, на что сортировка ругается... Оказалось, надо -t. И, да, -k позволяет задать только одно поле для сортировки, поэтому в исходной команде результаты сортировки могут быть странные

пятница, 5 сентября 2014 г.

Zimbra: переполнение почтовых ящиков

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

Пользователи работают через POP3, и в их Outlook-ax выставлено "Удалять сообщения с сервера через 14 дней". Разумное ограничение, ведь бывает, что пользователь скачал сообщение и случайно удалил его у себя в клиенте, и самый быстрый способ вернуть статус-кво - это залезть в п/я веб-клиентом. (вариант не единственный, но речь сейчас не об этом)

Квота задана COS-ом, 300МБ на ящик. Но одному из пользователей не хватает и этого. Делать ему отдельный COS или вручную править лимиты не хочется. В итоге, если не разрешить POP3 удалять сообщения с сервера сразу по получении, или не делать ручную чистку ящика, то переполнение наступает очень быстро и письма к этому пользователю зависают в очередях, регулярная проверка которых приводит к снижению производительности сервера со всеми неприятными вытекающими.

При просмотре параметров п/я обнаружился параметр, аналога которому в UI ZCS-OSE 8.0.6 я не нашел:

$ zmprov ga пользователь|grep Quota
zimbraMailAllowReceiveButNotSendWhenOverQuota: FALSE
zimbraMailQuota: 314572800
zimbraQuotaWarnInterval: 1d
zimbraQuotaWarnMessage: (текст предупреждения удален)
zimbraQuotaWarnPercent: 90

Вот это - zimbraMailAllowReceiveButNotSendWhenOverQuota - что? В UI не нашел, хотя, может, плохо искал. Однако, название параметра говорит само за себя: "разрешить получение, но не отправку при переполнении п/я". Что нам, собственно, и требуется, поскольку почта в очередях имеет привычку протухать.

Провел эксперимент:

$ zmmailbox -z -m gms трудный_пользователь
299.62 MB

Понятно, ящик забит под завязку.

$#ошибся первый раз:
$ zmprov ma трудный_пользователь zimbraMailAllowReceiveButNotSendWhenOverQuota=true
usage:  modifyAccount(ma) {name@domain|id} [attr1 value1 [attr2 value2...]]
For general help, type : zmprov --help

$#ошибся второй раз:
$ zmprov ma трудный_пользователь zimbraMailAllowReceiveButNotSendWhenOverQuota true
ERROR: account.INVALID_ATTR_VALUE (zimbraMailAllowReceiveButNotSendWhenOverQuota must be TRUE or FALSE)

$#а вот так правильно:
$ zmprov ma трудный_пользователь zimbraMailAllowReceiveButNotSendWhenOverQuota TRUE

То есть, с какого-то перепуга булев параметр стал чувствителен к регистру? Ну да ладно... Заходим в диспетчер очередей и видим, что бедного пользователя в очереди на протухание ждут 129 сообщений. Но мы ж вроде разрешили доставку в переполненный ящик? Делаем "сброс" - попытку доставить всю ожидающую почту. Как ни странно, но очередь очищается, значит почта доставлена. Что ж, снова посмотрим, что там с размером п/я:

$ zmmailbox -z -m gms трудный_пользователь
640.17 MB

Неслабо так! Чувствую, всё равно придется донастраивать ему клиента, чтобы не хранить такие объемы на своем сервере.