jueves, diciembre 19, 2013

Curso de Zimbra - Capítulo IV (Comandos en consola en Zimbra)

Mis manuales actualizados de Zimbra (2017)
https://cloudperu.pe/manuales/listado

Si Ud. desea llevar un curso de Zimbra; puede ver mi Curso en Aula Útil https://aulautil.com/curso/online/zimbra. Clases con Videoconferencia y asistencia en tiempo real con Anydesk. Incluye Gratis 2 Servidores VPS Cloud (Firewall UTM+Zimbra) + 1 IP pública y dominio real por alumno.

1.- Comandos de servicio
##########################################################################

$> su - zimbra

verificar el estado de todos los  servicios en zimbra
$> zmcontrol status 

detener todos los servicios
$> zmcontrol stop

iniciar todos los servicios
$> zmcontrol start

reiniciar todos los servicios
$> zmcontrol restart

ver la versión de zimbra
$> zmcontrol -v


2.- Comandos individuales de servicio (start, stop, restart, status)
##########################################################################
Ej: detenemos todos los servicios e iniciaremos uno a uno

$> zmcontrol stop

$> zmcontrol status

Iniciar LDAP server
$> ldap start

$> zmcontrol status

Iniciar MySQL Server
$> mysql.server start

Iniciar zmconfigd
$> zmconfigdctl start

Iniciar MTA (postfix, saslauthd)
$> zmmtactl start

Iniciar Amavis, Antivirus y AntiSpam (amavis, spamassassin, clamav)
$> zmamavisdctl start

$> zmcontrol status

Iniciar Mailbox (webmail, panel de administracion, servidores imap y pop3, servidores de filtros)
$> zmmailboxdctl start

Iniciar spell (servidor de ortografía)
$> zmapachectl start

Iniciar monitoreo
$> zmswatchctl start

Iniciar estadísticas
$> zmstatctl start

Iniciar Logger (logs del sistema)
$> zmlogswatchctl start

Reiniciar solo el antivirus
$> zmantivirusctl restart

Reiniciar solo el antispam
$> zmantispamctl restart


3.- zmprov: comando de administración de zimbra
############################################################################

Loguearse primero como usuario zimbra

$> su - zimbra

Lista la ayuda general de zmprov
$> zmprov help

Listar la ayuda para gestionar las cuentas
$> zmprov help acount

Consola Interactiva
$> zmprov
prov> 

Ver ayuda de cuentas
prov> help account

Salir de la consola interactiva
prov> quit

4.- Cuentas
############################################

Obtener listado de todas las cuentas del servidor (todos los dominios)
$> zmprov -l gaa

Obtener todas las cuentas de administración
$> zmprov -l gaaa

Obtener información de una sola cuenta
$> zmprov -l ga tuxito@dominio.com 

Cuentas de un dominio específico
$> zmprov -l gaa dominio.com

Detalle de cuentas de un dominio especifico
$> zmprov -l gaa -v dominio.com

Detalle de cuentas de un dominio especifico con Cuenta, Nombre y Quota
$> zmprov -l gaa -v dominio0.com | grep -e zimbraMailDeliveryAddress -e displayName -e zimbraMailQuota |sed -e "s/zimbraMailDeliveryAddress/Cuenta/" -e "s/displayName/Nombre/" -e "s/zimbraMailQuota/Quota/"   

Crear una cuenta, con cos default
$> zmprov ca pepito@dominio.com pepitopass displayName "Pepito Pérez"

Crear un usuario con un cos específico ej: gerente
$> cos=`zmprov gc gerente | grep zimbraId:|cut -d ' ' -f2`
$> zmprov ca juanito@dominio.com juanitopass displayName "Juanito Martinez" zimbraCOSId $cos 

Crear una cuenta con detalle
$> zmprov ca windozero@dominio.com passwinbugs cn 'Nombre(s) ApMaterno ApPaterno' displayName 'Nombre(s) ApMaterno ApPaterno' givenName 'Nombre(s)' zimbraCOSId $cos

5.- Modificar opciones de una cuenta
#########################################################

Cambiar de password de una cuenta
$> zmprov sp usuario1@dominio.com passnuevo

Modificar un atributo de una cuenta
$> zmprov ma usuario1@dominio.com displayName "Luser Noob 1"

Nota: se puede modificar cualquier atributo del usuario
para la lista de atributos ejecutar
$> zmprov -l ga usuario1@dominio.com


6.- Busqueda de cuentas 
##########################################################

* Búsqueda por atributos
Se puede buscar las cuentas por un atributo en común
$> zmprov sa parametro=cadena

Buscar todas las cuentas activas
$> zmprov sa zimbraAccountStatus=active

Buscar todas las cuentas bloqueadas
$> zmprov sa zimbraAccountStatus=locked

Buscar en cuales listas se encuentra una cuenta
$> zmprov gam cuenta@dominio.com


7.- Borrar una cuenta
##########################################################
$> zmprov da usuario3@dominio.com

8.- Creación de Cuentas en forma masiva
######################################################################################################
Nos logueamos como root
$> su -

Creamos nuestro directorio de scrips
$> mkdir /opt/zimbra/scripts

Entramos al directorio
$> cd /opt/zimbra/scripts

Primero creamos un archivo con la lista de cuentas y sus respectivos cos
$> vim usuarios.txt
--------------------------------------------
usuario1@dominio.com,userpass1,Usuario Prueba 1,default
usuario2@dominio.com,userpass2,Usuario Prueba 2,default
usuario3@dominio.com,userpass3,Usuario Prueba 3,gerente
--------------------------------------------

Creamos ahora un script que genere un archivo para la creación de usuario
$> vim crea_usuarios.php
#!/usr/bin/php

<?php 

// Obteniendo los COS del sistema y sus Ids 

exec("/opt/zimbra/bin/zmprov gac",$arrcos); 

$cos = array(); 

foreach($arrcos as $cos_name){ 

        $cos_name  = chop ($cos_name); 

        $cosid=`/opt/zimbra/bin/zmprov gc $cos_name | grep ^zimbraId:`; 

        $cosid = trim(str_replace("zimbraId: ","",$cosid)); 

        $cos[$cos_name]=$cosid; 

} 

//print_r($cos); 

// Leyendo los archivos de Usuarios 

$userfile=file("usuarios.txt"); 

// Recorriendo array de usuarios y creando las cuentas 

foreach($userfile as $userline){ 

    $userline=trim(chop($userline)); 

    if(!empty($userline)){

        $user = explode(",",$userline);
    echo("ca $user[0] $user[1] displayName '$user[2]' zimbraCOSId ".$cos[$user[3]]."\n"); 
    } 
} 
?>
Ejecutamos el script, para eso necesitamos php
$> yum -y install php php-cli
$> chmod 755 crea_usuarios.php
$> ./crea_usuarios.php> cuentas.zm


Creamos los usuarios con zmprov
$> /opt/zimbra/bin/zmprov < cuentas.zm


9.- Listas de correo
###############################################################
Buscar todas las listas, y por dominio

$> zmprov gadl

$> zmprov gadl dominio.com

Crear una lista
$> zmprov cdl lista@dominio.com

Ver una lista específica
$> zmprov gdl lista@dominio.com

Encontrar todas las listas de un dominio y sus miembros
$> for i in $( zmprov gadl dominio.com | grep -v abuse | grep -v postmaster | sort ) ; do echo
 `zmprov gdl $i | grep -e 'mail: ' -e 'zimbraMailForwardingAddress: ' | sed 's/mail/Lista/' | sed

's/zimbraMailForwardingAddress: //'` ; done ;


agregar un miembro a la lista
$> zmprov adlm lista@dominio.com cuenta@dominio.com

Remover un miembro de la lista
$> zmprov rdlm lista@dominio.com cuenta@dominio.com

Borrar una lista
$ zmprov ddl lista@dominio.com


10.- Buzones (zmmailbox)
##################################################################

Entrar a la consola interactiva
$> zmmailbox
mbox> 

Ver ayuda general del comando
$> zmmailbox help

Ver ayuda de las cuentas 
$> zmmailbox help account

Ver ayuda de los mensajes
$> zmmailbox help message


* Tamaño de un buzón
Ver tamaño ocupado del buzón
$> zmmailbox -z -m cuenta@dominio.com gms

Ver el tamaño de las quotas asignadas y ocupadas de todos los buzones
$> zmprov gqu `zmhostname`|awk {'print " "$3" "$2" "$1'}

Revisar mensajes por carpetas en el buzón
$> zmmailbox -z -m cuenta@dominio.com gaf

Borrar una carpeta completa de un buzón
$> zmmailbox -z -m cuenta@dominio.com emptyFolder Junk

Importar mensajes de una carpeta Maildir existente en el INBOX 
$> echo addMessage /INBOX /path/to/Maildir/cur | /opt/zimbra/bin/zmmailbox -z -m cuenta@dominio.com

Buscar un mensaje
$> zmmailbox -z -m cuenta@dominio.com search -t message "prueba"

Buscar un mensaje en todas las cuentas
$> zmprov -l gaa |awk '{print "zmmailbox -z -m "$1" search \"linux\" "}' |sh -v
linux es la palabra de búsqueda

Buscar correos anteriores a una fecha: (formato mes/dia/año)
$> zmmailbox -z -m cuenta@dominio.com search -t message "in:INBOX (before: 12/19/13)"

Obtener contenido de un correo
$> zmmailbox -z -m cuenta@dominio.com  gm  21940
21940 es el ID del mensaje

Ver contactos:
$> zmmailbox -z -m cuenta@dominio.com gact | less

Vaciar casilla usuario:  
$> zmmailbox -z -m accoun@domain.com ef "/Inbox"

Ver correos de una carpeta
$> zmmailbox -z -m cuenta@dominio.com search -l 100 "in:Inbox"

Ver metadata de un correo:
$> zmmetadump -m cuenta@dominio.com -i 26747

Borrar un mensaje
$> zmmailbox -z -m cuenta@dominio.com dm 4543
4543 es el id del mensaje

5 comentarios:

alphaser dijo...

Excelente información Clever, clara y concisa.

Rolys dijo...

Muy bien pero tengo una duda, es
posible eliminar un mensaje
de todos los buzones ?

Anónimo dijo...

Muy buena info. Lo que necesitaria saber es como encontrar dentro de mi servidor zimbra desde lineas de contacto alguna lista que este oculta y que contenga direcciones de correo que se agregan automaticamente cada vez que algun usuario envia un mail. Muchas gracias.-

Anónimo dijo...

mi direccion de correo es: cce_cristian@hotmail.com

Anónimo dijo...

Muchas gracias por esta informaicón, me es de gran ayuda para un trabajo en la Universidad. :D