Все выполняется от пользователя zimbra, т.е. сперва всегда
su zimbra
Запуск/перезапуск
zmcontrol start|stop|restart|status
Перезапуск postfix (например, если правили конфиг)
zmmtactl reload
Проверка запущенных сервисов
zmprov gs `zmhostname` zimbraServiceEnabled
Информация о почтовом ящике
zmprov getMailboxInfo user@domain.com
Блокировка учетной записи ( возможные статусы: active, maintenance, locked, closed, lockout, pending )
zmprov ma user@domain.com zimbraAccountStatus locked
Переиндексировать ящик
zmprov reIndexMailbox user@domain.com start|status|stop
Посчитать количество писем в Inbox (getAllFolders)
zmmailbox -z -m user@domain.com gaf | grep Inbox | awk '{print $4}'
Список админских учетных записей
zmprov gaaa
Сменить пароль учетной записи
zmprov sp имя@домен НовыйПароль
Если нужно восстановить удаленные сообщения, сначала выполняется поиск в корзине, например: Только сообщения размером более 1 КБ (означает все)
zimbra@mail:/home/oper$ zmmailbox -z -m user@example.com s --dumpster -l 30 --types message larger:1kb
Восстановить определенные элементы (Синтаксис должен содержать идентификатор элемента для восстановления)
zmmailbox -z -m admin@mail.zimbra.io recoverItem 287 Inbox
Статистику по размерам почтовых ящиков можно смотреть через веб-интерфейс. Но это не всегда удобно, а иногда и невозможно.
zmprov gqu имя_сервера|sort -k 3 -n|column -t gqu -- GetQuoteUsage -k 3 -- сортировать по третьему столбцу -n -- сортировать числа как числа, чтобы 20 шло после 19, а не после 10 -t -- подобрать подходящие для красивой таблички ширины столбцов
Если в логах сообщения со словами NO_SUCH_BLOB, то это значит, что произошло рассогласование между метаданными ящика и физическими файлами с письмами. Т.е. в метаданных есть ссылки на письма, а по факту файлов уже нет. Устраняется путем перестроения метаданных на основе существующих файлов с письмами в ящике. Для того, что бы найти ящики, у которых проблема:
grep -B2 NO_SUCH_BLOB /opt/zimbra/log/mailbox.lo* |grep mailbox= |sed -r 's/.*mailbox=([0-9]*).*$/\1/' |sort -u
Пофиксить:
zmblobchk --mailboxes 6919 --export-dir /tmp --missing-blob-delete-item start|status|stop zmblobchk --mailboxes 4600 --export-dir /tmp/3 --missing-blob-delete-item --unexpected-blob-list /tmp/3/blob-list start
Работа с аккаунтом galsync
Информация об источниках данных (getDataSources)
zmprov gds galsync@domain.com
Удалить аккаунт galsync
zmgsautil deleteAccount -a galsync@domain.com
Узнать аккаунт (user account) по номеру ящика (MailboxId)
su - zimbra mysql use zimbra; select comment from mailbox where id=257; +----------------------+ | comment | +----------------------+ | user@domain.com | +----------------------+ 1 row in set (0.00 sec)
Обновление правил spamassasin
zimbramon /bin/sa-update
Очистка ящиков от удаленных писем – Зимбра производит операцию purge_mailbox только для тех ящиков, которые находятся в момент выполнения операции в памяти (т.е. к ним кто то подключен). По этому для редко используемых ящиков очистка не срабатывает. В ручном режиме:
#Получаем ZimbraID ящика zmprov -l ga user@domain.com zimbraId # name letterbackup@propertyminder.com # zimbraId: 1ab5cf73-b393-4ae0-9723-05ee92131980 #Загружаем ящик в память выполнив пустую операцию zmmailbox -z -m user@domain.com noOp #Очищаем ящик zmsoap -v -z PurgeMessagesRequest/mbox @id=1ab5cf73-b393-4ae0-9723-05ee92131980 <PurgeMessagesRequest xmlns="urn:zimbraAdmin"> <mbox id="1ab5cf73-b393-4ae0-9723-05ee92131980"/> </PurgeMessagesRequest> <PurgeMessagesResponse xmlns="urn:zimbraAdmin"> <mbox id="1ab5cf73-b393-4ae0-9723-05ee92131980" mbxid="6867" s="3030290"/> </PurgeMessagesResponse>
Можно пройтись по всем ящикам вот таким скриптом purge-all.sh
#!/bin/bash # purge-all.sh # run as user zimbra # $ ./purge-all.sh # or crontab monthly/weekly # 0 1 1 * * /usr/local/bin/purge-all.sh # config TMPDIR="/var/tmp" LOGDIR="/opt/zimbra/log" SLEEP=10 if [ "$USER" != "zimbra" ]; then echo "Error: Must be run as user zimbra" exit 1 fi DATE="`date '+%Y%m%d-%H%M%S'`" exec >> $LOGDIR/purgeall-$DATE.log echo "`date`: START $0" zmprov -l gaa -s `zmhostname` > $TMPDIR/purgeall-list.out for MYUSER in `cat $TMPDIR/purgeall-list.out` do echo "`date`: Starting user: $MYUSER" ACCOUNT_ID="`zmprov -l ga $MYUSER zimbraId | awk '/^zimbraId:/ {print $2}'`" if [ -n "$ACCOUNT_ID" ]; then zmmailbox -z -m $MYUSER noOp && \ zmsoap -v -z PurgeMessagesRequest/mbox @id=$ACCOUNT_ID if [ $? = 0 ]; then echo "`date`: Finished user: $MYUSER" else echo "`date`: Error: $MYUSER" fi fi sleep $SLEEP done echo "`date`: END $0" exit 0
Отсылка уведомлений админу о свободном месте на дисках
zmlocalconfig zmdisklog_warn_threshold
zmlocalconfig zmdisklog_critical_threshold
Изменим дефолтные значения на 90 и 98% соответственно
zmlocalconfig -e zmdisklog_warn_threshold=90
zmlocalconfig -e zmdisklog_critical_threshold=98
С какого адреса отправляются уведомления
zmlocalconfig smtp_source
Изменим адрес отправителя
zmlocalconfig -e smtp_source=mailsrv@domain.ru
На какой адрес отправляются уведомления
zmlocalconfig smtp_destination
Изменим адрес получателя
zmlocalconfig -e smtp_destination=support@domain.ru
Интервал отправки уведомлений (по дефолту – 600сек., максимально 86400сек.)
zmlocalconfig -e zmstat_disk_interval=3600
Для применения изменений необходимо перезапустить службу
zmstatctl stop zmstatctl start
Отчет daily mail report в zimbra
Для просмотра статистики в консоли /opt/zimbra/libexec/zmdailyreport Для получения письма на почту админа /opt/zimbra/libexec/zmdailyreport -m
CLI
|
|
ldap
|
|
ldapsearch
|
|
logmysqladmin
|
|
mailboxd
|
|
mysql
|
|
mysql.server
|
|
mysqladmin
|
|
postconf
|
|
postfix
|
|
qshape
|
|
zmaccts
|
|
zmamavisdctl
|
|
zmantispamctl
|
|
zmantivirusctl
|
|
zmapachectl
|
|
zmauditswatchctl
|
|
zmcalchk
|
|
zmcertmgr
|
|
zmclamdctl
|
|
zmcleaniplanetics
|
|
zmcontrol (Start/Stop Service)
|
|
zmconvertctl
|
|
zmdumpenv
|
|
zmgsautil
|
|
zmhostname
|
|
zmitemdatafile
|
|
zmjava
|
|
zmldappasswd
|
|
zmlmtpinject
|
|
zmlocalconfig
|
|
zmloggerctl
|
|
zmloggerhostmap
|
|
zmlogswatchctl
|
|
zmmailbox
|
|
zmmailboxdctl
|
|
zmmetadump
|
|
zmmtaconfigctl
|
|
zmmtactl
|
|
zmmypasswd
|
|
zmmypasswd
|
|
zmmysqlstatus
|
|
zmperditionctl
|
|
zmprov (Provisioning)
|
|
zmproxyconfgen
|
|
zmproxyctl
|
|
zmproxypurge
|
|
zmpython
|
|
zmsaslauthdctl
|
|
zmshutil
|
|
zmskindeploy
|
|
zmsoap
|
|
zmspellctl
|
|
zmsshkeygen
|
|
zmstat-chart
|
|
zmstat-chart-config
|
|
zmstat-chart-config
|
|
zmstatctl
|
|
zmstorectl
|
|
zmswatchctl
|
|
zmsyslogsetup
|
|
zmthrdump
|
|
zmtlsctl
|
|
zmtrainsa
|
|
zmtzupdate
|
|
zmupdateauthkeys
|
|
zmvolume
|
|
zmzimletctl
|