Dovecot Quota - для каждого своя
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
Dovecot Quota - для каждого своя
Visionman, теперь я понял. Что ж, подождём ответа от Timo в рассылке тогда.
Надеюсь, вы подробно там изложили что, где и как перестало работать.
А ещё лучше сразу патч в исходники выкатить на одобрение после такого комментария.
Надеюсь, вы подробно там изложили что, где и как перестало работать.
А ещё лучше сразу патч в исходники выкатить на одобрение после такого комментария.
IT voodoo blog https://kostikov.co
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2015-10-06 22:28:29
Dovecot Quota - для каждого своя
Да, описал максимально подробно, думаю скоро исправит.
По написанию патчей опыта к сожалению нету...
Честно говоря интересно узнать, смысл изменения DELETE/INSERT
По написанию патчей опыта к сожалению нету...
Честно говоря интересно узнать, смысл изменения DELETE/INSERT
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
Dovecot Quota - для каждого своя
Ой, да что там уметь то.
Берёте, правите файл так, как вы считаете верным.
Потом
Код: Выделить всё
#diff -u file.orig file.fixed > file.diff
IT voodoo blog https://kostikov.co
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2015-10-06 22:28:29
Dovecot Quota - для каждого своя
Что ж, после долгого общения, плюс пришлось даже сервер собирать тестовый на виртуальной машине, Тимо лично всё увидел, понял в чём дело и в следующем релизе будет всё исправлено.
Так что квоты для домена и квоты для пользователей в версии Dovecot 2.2.20 будут полностью рабочие
Отправлено спустя 1 час 18 секунд:
патч тут - http://hg.dovecot.org/dovecot-2.2/raw-rev/20b381fd95d0
Отправлено спустя 1 час 52 минуты 50 секунд:
Общение c Тимо, в конце он всё объяснил.
http://dovecot.2317879.n4.nabble.com/Mo ... 54077.html
Так что квоты для домена и квоты для пользователей в версии Dovecot 2.2.20 будут полностью рабочие
Отправлено спустя 1 час 18 секунд:
патч тут - http://hg.dovecot.org/dovecot-2.2/raw-rev/20b381fd95d0
Отправлено спустя 1 час 52 минуты 50 секунд:
Общение c Тимо, в конце он всё объяснил.
http://dovecot.2317879.n4.nabble.com/Mo ... 54077.html
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
Dovecot Quota - для каждого своя
Отлично! Вы - молодец!Visionman писал(а):Что ж, после долгого общения, плюс пришлось даже сервер собирать тестовый на виртуальной машине, Тимо лично всё увидел, понял в чём дело и в следующем релизе будет всё исправлено.
Так что квоты для домена и квоты для пользователей в версии Dovecot 2.2.20 будут полностью рабочие
Именно так и надо решать возникающие проблемы - вдумчиво и толково.
UPD. Почитал трэд. Тимо не сразу воткнулся в двухуровневую систему квотирования.
IT voodoo blog https://kostikov.co
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2015-10-06 22:28:29
Dovecot Quota - для каждого своя
Спасибо
Интересно конечно было )))
Да кстати, Тимо не сразу понял, мол вообще зачем это надо ))))
Собственно поэтому и предложил ему, давай сервер сделаю и сам всё увидишь.
Он конечно сразу ответил "Отличная идея, проекту поможет очень!"
Интересно конечно было )))
Да кстати, Тимо не сразу понял, мол вообще зачем это надо ))))
Собственно поэтому и предложил ему, давай сервер сделаю и сам всё увидишь.
Он конечно сразу ответил "Отличная идея, проекту поможет очень!"
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
Dovecot Quota - для каждого своя
О, значит удалось раскопать фишку, которая была незапланирована при дизайне системы изначально. Круто.
Может в wiki добавит пример теперь.
Кстати, насчёт помощи - я ему кидал несколько раз баксов по 20 в качестве поддержки. Как и для других проектов, которыми я пользуюсь, делаю. Чего и всем тем, кто пользуется тем или иным свободным софтом желаю.
IT voodoo blog https://kostikov.co
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2015-10-06 22:28:29
Dovecot Quota - для каждого своя
Приветствую.
Вновь вопрос по квотам )))
Прошло немного времени, недавно настроил новый сервер и Dovecot 2.2.21, ошибку как и обещал Тимо исправил, но вопрос другой возник.
Столкнулся с таким моментом.
Всё настроено, работает.
Но заметил один момент Roundcubemail web-интерфейс,
показывает снизу слева - занятое место для всех ящик одно и тоже
т.е. создано допустим три ящика
отправили письмо user1@domain.ru размером 2.5 MB и у всех остальных ящиков(пользователей), занятое место стало 2.5 MB
удаляем письмо из ящика user1@domain.ru и у всех остальных ящиков занятое место 0 (свободно).
Потратил почти день на поиск, в чём же дело и уже попробовав кучу вариантов.
Сделал простое, уже не знаю как в голову пришло, честно!
Поменял местами, вернее поставил индекс 2 для домена, а для пользователей убрал, остальное без изменений.
Рестарт Dovecot и всё заработало!
Теперь так:
quota - это пользователи
quota2 - это домен
Rouncubemail отображает корректно остаток места в ящиках, везде теперь разный, что собтсвенно и требовалось.
Сервер работает, ошибок нет, письма создаются, удаляются, квоты работают.
Возможно я упускаю что-то, меняя индекс 2.
Конфигурация моего сервера Dovecot он же и в качестве LDA локально доставляет письма в ящики.
http://www.heypasteit.com/clip/2G36
Лог работы когда Rouncubemail неверно отображает занятое место в ящике
quota= dict:domain_quota:%d:no-unset:proxy::sqldomainquota
quota2 = dict:user_quota::no-unset:proxy::sqluserquota
http://www.heypasteit.com/clip/2G38
Лог работы когда Rouncubemail верно отображает занятое место в ящике
quota2= dict:domain_quota:%d:no-unset:proxy::sqldomainquota
quota = dict:user_quota::no-unset:proxy::sqluserquota
http://www.heypasteit.com/clip/2G3A
Коллеги!
Что думаете по этому поводу и не заметили ли такое поведение у себя на сервере ?
Можете посмотреть, есть ли такой момент на сервере у Вас ?
Если нетрудно, посмотрите более внимательно, хочу понять, вновь в коде Dovecot что-то или настроил нетак ?!
Вновь вопрос по квотам )))
Прошло немного времени, недавно настроил новый сервер и Dovecot 2.2.21, ошибку как и обещал Тимо исправил, но вопрос другой возник.
Столкнулся с таким моментом.
Всё настроено, работает.
Но заметил один момент Roundcubemail web-интерфейс,
показывает снизу слева - занятое место для всех ящик одно и тоже
т.е. создано допустим три ящика
Код: Выделить всё
user1@domain.ru
user2@domain.ru
user3@domain.ru
удаляем письмо из ящика user1@domain.ru и у всех остальных ящиков занятое место 0 (свободно).
Потратил почти день на поиск, в чём же дело и уже попробовав кучу вариантов.
Сделал простое, уже не знаю как в голову пришло, честно!
Поменял местами, вернее поставил индекс 2 для домена, а для пользователей убрал, остальное без изменений.
Рестарт Dovecot и всё заработало!
Теперь так:
quota - это пользователи
quota2 - это домен
Код: Выделить всё
-=dovecot.conf =-
~~~~~~~
plugin {
[u]quota2[/u] = dict:domain_quota:%d:no-unset:proxy::sqldomainquota
[u]quota[/u] = dict:user_quota::no-unset:proxy::sqluserquota
quota_rule2 = Trash:storage=+20%%
quota_rule3 = Junk:storage=+20%%
quota_grace = 10%%
quota_warning = storage=100%% quota-exceeded 100 %u
quota_warning2 = storage=95%% quota-warning 95 %u
quota_warning3 = storage=90%% quota-warning 90 %u
quota_warning4 = storage=75%% quota-warning 75 %u
~~~~~~~
Сервер работает, ошибок нет, письма создаются, удаляются, квоты работают.
Возможно я упускаю что-то, меняя индекс 2.
Конфигурация моего сервера Dovecot он же и в качестве LDA локально доставляет письма в ящики.
http://www.heypasteit.com/clip/2G36
Лог работы когда Rouncubemail неверно отображает занятое место в ящике
quota= dict:domain_quota:%d:no-unset:proxy::sqldomainquota
quota2 = dict:user_quota::no-unset:proxy::sqluserquota
http://www.heypasteit.com/clip/2G38
Лог работы когда Rouncubemail верно отображает занятое место в ящике
quota2= dict:domain_quota:%d:no-unset:proxy::sqldomainquota
quota = dict:user_quota::no-unset:proxy::sqluserquota
http://www.heypasteit.com/clip/2G3A
Коллеги!
Что думаете по этому поводу и не заметили ли такое поведение у себя на сервере ?
Можете посмотреть, есть ли такой момент на сервере у Вас ?
Если нетрудно, посмотрите более внимательно, хочу понять, вновь в коде Dovecot что-то или настроил нетак ?!
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
Dovecot Quota - для каждого своя
Что-то я не уловил мысли.
Если мы имеем двухуровневое квотирование по моей старой схеме, то логично было бы то, кто когда для ящика нет персональной квоты (без индекса), то квота берётся единая для домена (идущая за ней следующая, т.е. с индексом 2). То есть при отсутствии квот на ящики поведение описанное вами вполне логичное и очевидное.
Если же у вас на эти ящики имеются персональные квоты, но при этом применяется единая для домена, то это косяк реализации. Реализации на чьей стороне - вашей конфигурации или самого Dovecot это вопрос.
Если мы имеем двухуровневое квотирование по моей старой схеме, то логично было бы то, кто когда для ящика нет персональной квоты (без индекса), то квота берётся единая для домена (идущая за ней следующая, т.е. с индексом 2). То есть при отсутствии квот на ящики поведение описанное вами вполне логичное и очевидное.
Если же у вас на эти ящики имеются персональные квоты, но при этом применяется единая для домена, то это косяк реализации. Реализации на чьей стороне - вашей конфигурации или самого Dovecot это вопрос.
IT voodoo blog https://kostikov.co
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2015-10-06 22:28:29
Dovecot Quota - для каждого своя
Да, квоты применяются персональные и единая для домена.xM писал(а):Что-то я не уловил мысли.
Если мы имеем двухуровневое квотирование по моей старой схеме, то логично было бы то, кто когда для ящика нет персональной квоты (без индекса), то квота берётся единая для домена (идущая за ней следующая, т.е. с индексом 2). То есть при отсутствии квот на ящики поведение описанное вами вполне логичное и очевидное.
Если же у вас на эти ящики имеются персональные квоты, но при этом применяется единая для домена, то это косяк реализации. Реализации на чьей стороне - вашей конфигурации или самого Dovecot это вопрос.
Вот вот, тут поподробнее пожалуйста, косяк реализации ?
Т.е. если я правильно понимаю, индекс применяется на своё усмотрение или он зависим от настройки Dovecot и базы ?
Хмм...
Посмотрел сервер на виртуальной машине, который Тимо для теста делал и свой старый, отображение некорректное, если меняю, как описал выше, всё нормально.
Жаль ранее внимание не обратил.
Сейчас пока собственно оставил сменив индекс, отображение корректное, посмотрю на работу сервера,
целый день тестирую, всё нормально.
На днях начнёт работу с полной нагрузкой.
Есть у Вас возможность посмотреть работу Roundcube версии 1.1.4 на Вашем сервере установлен данный вебинтерфейс ?
Искал дальше информацию по вопросу, удалось найти только это...
Аналогичная ситуация некорректный вывод размера ящика, но в Webmin
Рекомендовали так, говорит всё работает:
Код: Выделить всё
### Multiple quota roots are also possible, for example:
quota = dict:user::proxy::quota
quota2 = dict:domain:%d:proxy::quota_domain
quota_rule = *:storage=102400
quota2_rule = *:storage=1048576
### Gives each user their own 100MB quota and one shared 1GB quota within the domain.
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
Dovecot Quota - для каждого своя
Так я пока его и не вижу.
Проверьте - сделайте квоту на домен и персональную для одного из ящиков и погоняйте.
Будет видно как они меняются в базе (и, соответственно, отображаются).
Пример с квотами правильный - сначала персональные, затем на домен. Так и должно быть, по идее.
IT voodoo blog https://kostikov.co
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2015-10-06 22:28:29
Dovecot Quota - для каждого своя
Новый сервер делал, увидел статью, посмотреть, мало ли что изменилось )))
https://kostikov.co/post/dvuhurovnevoe- ... -dovecot-2
Интересный момент там
Скажите пожалуйста, почему username_field = domain
Ведь поля domain нету в таблице quota2 ?
Будет ошибка dovecot
Apr 03 12:28:16 dict(79492): Error: Unknown column 'domain' in 'where clause'
https://kostikov.co/post/dvuhurovnevoe- ... -dovecot-2
Интересный момент там
Код: Выделить всё
root@localhost [(none)]> SHOW COLUMNS FROM quota2 FROM exim;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| username | varchar(100) | NO | PRI | NULL | |
| bytes | bigint(20) | NO | | 0 | |
| messages | int(11) | NO | | 0 | |
+----------+--------------+------+-----+---------+-------+
3 rows in set (0,00 sec)
...
Код: Выделить всё
# cat dovecot-dict-sql-domain.conf
connect = host=localhost dbname=exim user=user password=password
map {
pattern = priv/quota/storage
table = quota2
username_field = domain
value_field = bytes
}
map {
pattern = priv/quota/messages
table = quota2
username_field = domain
value_field = messages
}
Ведь поля domain нету в таблице quota2 ?
Будет ошибка dovecot
Apr 03 12:28:16 dict(79492): Error: Unknown column 'domain' in 'where clause'
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
Dovecot Quota - для каждого своя
Спасибо за замечание. Сейчас у меня нет доступной системы использующей эту схему квотирования, поэтому брал настройки с той, что была под рукой по аналогии.
Надо вместо domain использовать поле username для хранения данных и по домену, конечно.
На сайте исправил.
IT voodoo blog https://kostikov.co
-
- рядовой
- Сообщения: 27
- Зарегистрирован: 2015-10-06 22:28:29
Dovecot Quota - для каждого своя
Сам тоже сначала включил
Думаю как ж так то, domain явно тут не должно быть
Пожалуйста!
P.S.
Здорово сайт оформлен, стильно!
CMS отличная!
Думаю как ж так то, domain явно тут не должно быть
Пожалуйста!
P.S.
Здорово сайт оформлен, стильно!
CMS отличная!
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
Dovecot Quota - для каждого своя
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 57
- Зарегистрирован: 2008-05-23 7:23:36
Dovecot Quota - для каждого своя
Всю голову сломал с Postfixadmin 3.02
Предыстория: переход с Dovecot версии 1.2 на Dovecot 2.2, использовались quota sieve, база данных MySQL 5.6
C обновлением самих программ проблем не возникло, но вот их дальнейшее использование с поставило меня в тупик.
Итак по порядку:
1. Когда я завожу нового пользователя в домене в таблице quota2 не появляется запись для данного пользователя.
Вопрос: должен ли это делать сам Postfixadmin или это забота Dovecot 2, ошибку которого я опишу ниже?
2. Dovecot прекрасно читает в выбранным пользователем пароли из базы и правильно обрабатывает password_query и user_query,
но спотыкается при попытке достучаться словарем квот в базу с такой ошибкой при работе imapsync (влючена опция debug):
Пользователь, от имени которого запускается Dovecot:
mail_gid = mail
mail_uid = mailnull
Вот это словарь
service dict {
unix_listener dict {
group = mail
mode = 0660
user = mailnull
}
}
Где собака порылась? Уже все что мог перебрал. И базу создавал заново и руками и автоматически, и все разрешения перепроверил, ну не летит паровоз, хоть ты тресни.
Предыстория: переход с Dovecot версии 1.2 на Dovecot 2.2, использовались quota sieve, база данных MySQL 5.6
C обновлением самих программ проблем не возникло, но вот их дальнейшее использование с поставило меня в тупик.
Итак по порядку:
1. Когда я завожу нового пользователя в домене в таблице quota2 не появляется запись для данного пользователя.
Вопрос: должен ли это делать сам Postfixadmin или это забота Dovecot 2, ошибку которого я опишу ниже?
2. Dovecot прекрасно читает в выбранным пользователем пароли из базы и правильно обрабатывает password_query и user_query,
но спотыкается при попытке достучаться словарем квот в базу с такой ошибкой при работе imapsync (влючена опция debug):
Код: Выделить всё
dict(83791): Error: mysql(localhost): Connect failed to database (exim): Access denied for user 'exim'@'localhost' (using password: YES) - waiting for 25 seconds before retry
imap(anastasia@****.ru): Error: dict-client: Lookup 'priv/quota/storage' failed: Dict server timeout: No input for 30.020 secs (1 commands pending, ol
dest sent 60.034 secs ago: Lpriv/quota/storage, 60.035 in dict wait, 0.000 in other ioloops, 0.000 in locks) (reply took 60.034 secs (60.035 in dict wait, 0.000 in other ioloops, 0.000 in locks, reconnected 30.028 secs ago, async-id reply 30.020 secs ago))
dict(83792): Error: mysql: Query timed out (no free connections for 60 secs): SELECT bytes FROM quota2 WHERE username = 'anastasia@******.ru'
mail_gid = mail
mail_uid = mailnull
Вот это словарь
service dict {
unix_listener dict {
group = mail
mode = 0660
user = mailnull
}
}
Где собака порылась? Уже все что мог перебрал. И базу создавал заново и руками и автоматически, и все разрешения перепроверил, ну не летит паровоз, хоть ты тресни.
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
Dovecot Quota - для каждого своя
У вас нет доступа к базе данных. Проверяйте права.
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 57
- Зарегистрирован: 2008-05-23 7:23:36
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
Dovecot Quota - для каждого своя
Проверьте в конфигурационном файле dict верность данных для доступа к базе данных (connect= ...). Они должны быть идентичны тем, что используются в выборке пользователей.
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 57
- Зарегистрирован: 2008-05-23 7:23:36
Dovecot Quota - для каждого своя
Нашел одну ошибку в пароле, что и влияло на вызов mysql dict-ом и пришлось переделать полностью вызов user_query, ибо тот, что у вас на сайте в статье не работает, а старый, что был у меня неверно считал квоты. Теперь обработка выглядит так, и не ругается у меня на неверный синтаксис:
26 - mailnull
6 - mail
Тем не менее спасибо за наводку. Глаза совсем замылились, не видели очевидного.
Код: Выделить всё
user_query = SELECT CONCAT('/var/mail/exim/','maildir') AS home, 26 AS `uid`, 6 AS `gid`, \
CONCAT('*:bytes=', CAST(mailbox.quota AS CHAR)) AS quota_rule, \
CONCAT('*:bytes=', CAST(ROUND(domain.quota * 1048576) AS CHAR)) AS quota2_rule \
FROM mailbox,domain WHERE username ='%u' AND mailbox.active ='1' \
AND domain.domain ='%d' AND domain.active = '1'
6 - mail
Тем не менее спасибо за наводку. Глаза совсем замылились, не видели очевидного.
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
Dovecot Quota - для каждого своя
Ну, у меня работает как в статье. И не только у меня.
Впрочем, рад что вы сами разобрались.
Отправлено спустя 1 час 18 минут 50 секунд:
Вообще, посмотрел ваше выражение. Возможно, у вас в конфиге отключено автоматическое приведение типов. CONCAT() по умолчанию прекрасно это делает. Да, и у меня везде MySQL 5.7. Но оно работало и на 5.5 и на 5.6.
Кстати, там наверняка можно и проще. Как-то так.
Код: Выделить всё
...
CONCAT('*:bytes=', domain.quota, 'M') AS quota2_rule
...
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 57
- Зарегистрирован: 2008-05-23 7:23:36
Dovecot Quota - для каждого своя
Проверил конфигурацию mysql, но не обнаружил там в явном виде ключа, отвечающего за неявное приведение типов. По умолчанию мускуль должен это делать сам, но в моем случае не делает. Стоит 5.6, ставил не из пакета, а собирал из портов, так как хотел сменить collation по умолчанию, да и внести пару нужных мне опций. Буду признателен, если вы меня просветите в этом вопросе. А в запросах языка dict я использую везде bytes (байты) а не storage (килобайты) переменные. Довекот понимает "M", но вот язык квот - нет. Поэтому ну их нафиг, странные эксперименты, пусть лучше работает так, как есть.
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
Dovecot Quota - для каждого своя
Не, bytes тоже понимает мультипликаторы
https://wiki2.dovecot.org/Quota/Configuration
Так что можно использовать. И там же написано, что считает правильно, по 1024. Впрочем, и число сообщений тоже.So storage=100M and bytes=100M both mean the exact same thing.
IT voodoo blog https://kostikov.co
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
Dovecot Quota - для каждого своя
Наверное где-то в районe SQL modes типа STRICT_TRANS_TABLES или STRICT_ALL_TABLES.
См. что у вас стоит
Код: Выделить всё
> SELECT @@sql_mode\G
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 57
- Зарегистрирован: 2008-05-23 7:23:36
Dovecot Quota - для каждого своя
xM писал(а): Наверное где-то в районe SQL modes типа STRICT_TRANS_TABLES или STRICT_ALL_TABLES.
См. что у вас стоит
Код: Выделить всё
mysql> SELECT @@sql_mode\G;
*************************** 1. row ***************************
@@sql_mode: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION