• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar
El Blog de Jorge de la Cruz

El Blog de Jorge de la Cruz

El Blog de Jorge de la Cruz - Todas las novedades sobre VMware, Veeam, InfluxData, Grafana, Zimbra, etc.

  • Home
  • VMware
    • VMworld
    • VMware vSphere 6.7
    • VMware vSphere 6.5
  • Veeam
    • Resumen Contenido 2021
    • Veeam v11
      • Continuous Data Protection (CDP
      • Ransomware Protection
      • Archive Tier
      • Mejoras en Instant Recovery
      • Veeam Agent for Mac
      • Veeam Backup for AHV v2.1
    • Veeam Backup for Microsoft Office 365
      • 1 – Razones para proteger nuestra información en Microsoft Office 365
      • 2 – Componentes lógicos de Veeam Backup for Microsoft Office 365 2.0
      • 3 – Instalación paso a paso de Veeam Backup for Microsoft Office 365 v2.0
      • 4 – Configuración inicial de Veeam Backup for Microsoft Office 365 v2.0
      • 5 – Creando trabajos de copia en Veeam Backup for Microsoft Office 365 v2.0
      • 6 – Restaurando elementos en Veeam Backup for Microsoft Office 365 v2.0
    • Veeam Backup for AWS
      • Veeam: Veeam anuncia Veeam Backup for AWS Free Edition
      • Veeam: Cómo Desplegar Veeam Backup for AWS – paso a paso
      • Veeam: Vistazo en profundidad al nuevo Veeam Backup for AWS – Creación de Políticas de Backup y Restauración
      • Veeam: Cómo conectar nuestro Veeam Backup & Replication a Veeam Backup for AWS
    • Veaam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte I – Introducción a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte II – Descarga e Instalación de Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte III – Añadir una Infraestructura de VMware vSphere a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte IV – Añadir una Infraestructura de Veeam Backup and Replication a Veeam ONE
      • En busca del Dashboard perfecto: Veeam ONE – Parte V – Realizando troubleshooting de vSphere usando Veeam ONE Monitor
      • En busca del Dashboard perfecto: Veeam ONE – Parte VI – Realizando troubleshooting de Veeam Backup and Replication usando Veeam ONE Monitor
      • En busca del Dashboard perfecto: Veeam ONE – Parte VII – Vistazo profundo a los Dashboards en Veeam ONE Reporter
      • En busca del Dashboard perfecto: Veeam ONE – Parte VIII – Vistazo profundo a Reportes en Veeam ONE Reporter
      • En busca del Dashboard perfecto: Veeam ONE – Parte IX – Chargeback para crear reportes de coste de nuestra Infraestructura
    • Veeam Availability Console
      • 1 – Teoría e información útil sobre el producto
      • 2 – Instalación de Veeam Availability Console
      • 3 – Configuración y conexión con VBR Server
      • 4 – Administración centralizada de Veeam Backup Agents
      • 5 – Backup de Agentes a diferentes destinos, SMB, Repositorio Veeam o Cloud Connect
      • 6 – Reportes de Backup de Veeam Agent y Veeam Backup and Replication
      • 7 – Manejando la Facturación de Veeam Agents, Backup and Replication y Cloud Connect
    • Backup y restore de cargas de trabajo a Microsoft Azure
      • 1 – Introducción
      • 2 – Conectividad entre nuestro Datacenter y Microsoft Azure
      • 3 – Desplegar Veeam Backup and Replication en Microsoft Azure
      • 4 – Configuración en nuestro Datacenter para backup a Microsoft Azure
      • 5 – Restaurando a Microsoft Azure, desde Microsoft Azure
      • 6 – Migrar cargas de trabajo desde Microsoft Azure hacía nuestro Datacenter
    • Veeam v9.5 Update 4
      • Veeam Cloud Tier
        • Cómo controlar el ancho de banda en Veeam Cloud Tier
      • Secure Restore y Staged Restore
      • Mejoras en Veeam Agent Management
      • Veeam Community Edition
      • Actualizar Veeam Enterprise Manager y Veeam Backup and Replication a la última versión
      • VeeamONE con Intelligent Diagnostics, Remediation actions, Business View 2.0 y Application Monitoring
    • VeeamON 2022
      • Novedades en Veeam ONE v12
    • VeeamON 2021
      • VBO v6 – Self-Service y Backup Copy Glacier-Azure Archive
    • VeeamON 2020
      • Veeam Backup for AWS v2.0
    • VeeamON 2019
      • Veeam Availability Orchestrator v2.0 – ¡novedades!
    • VeeamON 2017
      • Sesiones recomendadas
      • Día I – Veeam Availability Suite v10 – ¡novedades!
      • Día II – Veeam Azure PN (Powered Network), Scale-out Archive Tier y mucho más
    • VeeamON 2015
      • VeeamON 2015 volverá a Las Vegas en el único Evento sobre Disponibilidad en el Data Center
      • Completo resumen, keynotes e imágenes
      • vBrownBag – Jorge de la Cruz – Stop sending postcards to your customers
  • Zextras
  • PRTG
  • Office 365
    • Microsoft – Añadiendo nuestro dominio a Office 365, configuración de DNS y migración de actual Mailbox
    • Veeam: Usando Microsoft Office 365 para nuestras notificaciones por correo electrónico
    • PRTG: Usando Microsoft Office 365 para nuestras notificaciones por correo electrónico
  • Zimbra
    • Instalación
      • Instalando Zimbra 8.7.6 sobre Ubuntu 14.04 LTS – ¡con Chat y Drive!
      • Amazon Lightsail para instalar Zimbra Collaboration 8.7.1, Parte II
      • Amazon Lightsail para instalar Zimbra Collaboration 8.7.1, Parte I
      • Instalando Zimbra 8.7.x con un solo comando, incluye Chat y Drive
  • Linux
    • InfluxDB, Grafana y Telegraf
      • 1 – Instalación y configuración de los components
      • 2 – Instalar agente en Linux
      • 3 – Integración con PRTG
      • 4 – Instalar agente Telegraf en Nodos remotos Windows
      • 5 – Activar inputs específicos, Red, MySQL/MariaDB, Nginx
      • 6 – Monitorizando Veeam
    • Ansible y Zabbix
      • 1 – Inicio
      • 2 – Instalación de Ansible e integración con Active Directory
      • 3 – Configuración de AutoDiscovery en Zabbix
      • 4 – Instalación del agente de Zabbix en Windows
      • 5 – Instalación del agente de Zabbix en Linux y Auto Remove en Zabbix
    • Jenkins
      • 1 – Inicio
      • 2 – Instalación de Jenkins en Ubuntu
      • 3 – Instalando nuestro primer plugin
      • 4 – Sincronización NTP de Linux
      • 5 – Añadir un Slave Windows a Jenkins
      • 6 – Ejecutar tareas en Linux
      • 7 – Ejecutar tareas en Windows
    • Kubernetes
      • 1 – Introducción a Kubernetes
      • 2 – Instalación paso a paso
      • 3 – RollingUpdate con Kubernetes
      • 4 – Dashboard
      • 5 – Volúmenes NFS
      • 6 – Registry
      • 7 – Traefik
      • 8 – Systemd con Traefik y Proxy de Kubernetes
      • 9 – Heapster Influx Grafana
      • 10 – Labels de Kubernetes
      • 11 – API: Swagger
      • 12 – API: Creando nuestro primer POD
  • Contribuidores
    • Acerca de Jorge
    • Acerca de Oscar Mas
      • Clúster SQL
        • 1 – Introducción
        • 2 – Preparación de los equipos virtuales
        • 3 – Instalación del Clúster de Microsoft
        • 4 – Instalación de SQL Server para Clúster de Microsoft
        • 5 – Configuración de nuestro Clúster de SQL
        • 6 – Monitorización de Clúster de SQL con Zabbix
        • 7 – Actualizando clúster de SQL

Zimbra: Crear 1000 usuarios y añadirlos a Zimbra de manera automática en batch mode

19 July, 2016 - Escrito en: zimbra

zimbra-batchusersSaludos, muchas veces en mis laboratorios sobre Zimbra, necesito crear usuarios aleatorios y que los mismos tengan una cuenta claro, bien sea para realizar migraciones, o bien para  realizar backups, etc. Obviamente crear manera manual 10, 50 o 1000 usuarios podría llevarnos una eternidad, y no sería rentable ni productivo, por eso hoy os dejo aquí este consejo que espero que os ayude:

Lo primero que haremos será irnos hasta /var/tmp con el usuario zimbra

su - zimbra
cd /var/tmp

Después crearemos un fichero llamado usercreation.sh

touch usercreation.sh

Dentro de este script introduciremos lo siguiente, por favor ajustarlo con vuestro dominio, y personalizarlo un poco si queréis:

vi usercreation.sh
#!/bin/bash
# Zimbra Collaboration user creation
cd /var/tmp
x=0
while [ $x -lt 1000 ]
do
echo "ca [email protected] 'ZimbraAlway\$0n' cn 'Demo User${x}' givenName 'Demo' zimbraPrefFromDisplay 'Demo User${x}'" >> userlist.zmp
x=`expr $x + 1`
done

Añadiremos los privilegios para poderlo ejecutar

chmod +x usercreation.sh

Y finalmente lo lanzaremos, tardará unos segundos en ejecutarse completamente

./usercreation.sh

Y podremos mirar ahora el contenido del fichero userlist.zmp, por ejemplo ultimas líneas:


ca [email protected] 'ZimbraAlway$0n' cn 'Demo User995' givenName 'Demo' zimbraPrefFromDisplay 'Demo User995'
ca [email protected] 'ZimbraAlway$0n' cn 'Demo User996' givenName 'Demo' zimbraPrefFromDisplay 'Demo User996'
ca [email protected] 'ZimbraAlway$0n' cn 'Demo User997' givenName 'Demo' zimbraPrefFromDisplay 'Demo User997'
ca [email protected] 'ZimbraAlway$0n' cn 'Demo User998' givenName 'Demo' zimbraPrefFromDisplay 'Demo User998'
ca [email protected] 'ZimbraAlway$0n' cn 'Demo User999' givenName 'Demo' zimbraPrefFromDisplay 'Demo User999'

Finalmente, lanzaremos el comando, como usuario zimbra todavía, para importar el fichero con todas las cuentas, dentro de nuestro Zimbra

zmprov -f userlist.zmp

Este proceso tardará varios segundos, hasta minutos dependiendo de la cantidad de cuentas a importar:

prov> b99e183e-02e1-455b-9140-75957382a720
prov> c25f464d-7a5d-4316-ab7d-123b1949ebff

Si nos pasamos del límite de cuentas que nuestra Licencia tiene, recibiremos este error:

prov> ERROR: service.LICENSE_ERROR (AccountsLimit exceeded: 10001/10000)

En nuestra Admin Console, ya podremos ver todas las cuentas disponibles:
Zimbra Administration 2016-07-18 09-27-08
Espero que os sirva y os guste

Filed Under: zimbra Tagged With: zimbra create users, zimbra provision, zimbra zmprov

Reader Interactions

Comments

  1. Luis Mejia says

    20 July, 2016 at 1:09

    Se me ocurrió agregarle un passw randow.
    Saludos desde Perú

    #!/bin/bash
    # Zimbra Collaboration user creation
    #cd /var/tmp
    MATRIX=”23456789ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz”
    LENGTH=”8″

    x=1
    while [ $x -lt 100 ]
    do
    while [ “${n:=1}” -le “$LENGTH” ];do
    PASSW=”$PASSW${MATRIX:$(($RANDOM%${#MATRIX})):1}”
    let n+=1
    done

    echo “ca [email protected] ‘$PASSW’ cn ‘Demo User${x}’ givenName ‘Demo’ zimbraPrefFromDisplay ‘Demo User${x}'” >> /tmp/userlist.zmp
    n=””
    PASSW=””
    x=`expr $x + 1`

    done

    Reply
    • Jorge de la Cruz says

      20 July, 2016 at 8:26

      Maravilloso! Muchas gracias por el comentario y por el tiempo en compartirlo!!

      Un abrazo

      Reply
  2. Jose says

    28 March, 2018 at 18:42

    Hola
    Y como se haría un script para que zimbra sincronice los usuarios de LDAP que estan en samba?
    Tengo configurado zimbra para autenticacion con LDAP, pero cuando creo los usuarios en samba, no se crean en el zimbra, para unos pocos usuarios podria hacer el trabajo doble, pero cuando son muchos es mejor que lo haga de forma automatica

    Reply
  3. Ed says

    27 February, 2019 at 13:04

    #!/bin/bash

    zsyncad.sh script para sincronizar usuarios de zimbra con usuarios de AD

    LDAPSEARCH=/opt/zimbra/common/bin/ldapsearch
    ZMPROV=/opt/zimbra/bin/zmprov
    DOMAIN_NAME=”yourdomain”
    TIMESTAMP=date +%N
    TMP_DIR=/home/scripts/tmp

    Lista temporal de usuarios de AD

    ADS_TMP=$TMP_DIR/users_ads_$TIMESTAMP.lst

    Lista temporal de usuarios zimbra

    ZCS_TMP=$TMP_DIR/users_zcs_$TIMESTAMP.lst

    Lista temporal del archivo DIFF

    DIF_TMP=$TMP_DIR/users_dif_$TIMESTAMP.lst

    Valores del servidor

    LDAP_SERVER=”ldap://x.x.x.x”
    BASEDN=”ou=TuOU,dc=domain,dc=com”
    BINDDN=”cn=Administrator,cn=Users,dc=dptgr,dc=co,dc=cu”
    BINDPW=”*****”
    FILTER=”(mail=*)”
    FIELDS=”mail DisplayName”

    Consultar con servidor LDAP

    if ( /opt/zimbra/common/bin/ldapsearch -H ldap://x.x.x.x -b CN=Administrator,CN=Users,DC=domain,DC=com -D CN=Administrator,CN=Users,DC=domainDC=com -w ******** 2>&1 )
    then
    # Extraer usuarios desde ADS
    echo -n “Consultando ADS… ”
    $LDAPSEARCH -x -H $LDAP_SERVER -b “$BASEDN” -D “$BINDDN” -w $BINDPW “$FILTER” | grep “@$DOMAIN_NAME” | awk ‘{print $2}’ | sort -u > $ADS_TMP
    echo “Encontrando cat $ADS_TMP | wc -l usuarios ($ADS_TMP)”

    # Extraer usuarios desde ZCS
    echo -n “Consultando ZCS… ”
    $ZMPROV -l gaa $DOMAIN_NAME | grep -v “[email protected]” | grep -v “[email protected]” | grep -v “[email protected]” | grep -v “[email protected]” | \
    grep -v “[email protected]” | grep -v “[email protected]” | tr ‘[:upper:]’ ‘[:lower:]’ | sort -u > $ZCS_TMP

    # Original $ZMPROV -l gaa $DOMAIN_NAME > $ZCS_TMP
    echo “Encontrando cat $ZCS_TMP | wc -l usuarios ($ZCS_TMP)”

    # Generar lista diff
    echo “Generando archivo diff ($DIF_TMP)”
    diff -u $ZCS_TMP $ADS_TMP | grep “$DOMAIN_NAME” > $DIF_TMP

    # Limpiar lista de usuarios
    rm -f $ADS_TMP $ZCS_TMP

    # Importar usuarios nuevos
    echo -n “Usuarios nuevos: ”
    cat $DIF_TMP | grep ^+ | wc -l
    for i in $(cat $DIF_TMP | grep ^+ | sed s/^+//g);
    do
    echo -n ” – Agregando $i “;

    display_name=$LDAPSEARCH -x -H $LDAP_SERVER -b "$BASEDN" -D "$BINDDN" -w $BINDPW mail=$i displayName | grep "displayName:" | awk -F: '{print $2}'

    display_name=$LDAPSEARCH -x -H $LDAP_SERVER -b "$BASEDN" -D "$BINDDN" -w $BINDPW mail=$i displayName | grep "displayName:" | awk -F: '{print $2}'
    echo $i” | “$display_name
    echo $ZMPROV createAccount $i passwd displayName “$display_name”
    $ZMPROV createAccount $i passwd displayName “$display_name” > /dev/null ;
    RES=$?
    if [ “$RES” == “0” ]; then echo “[Ok]”; else echo “[Err]”; fi
    done

    # Enviar correo de Bienvenida
    for i in cat $DIF_TMP | grep ^+ | sed s/^+//g;
    do
    mail -s “Bienvenido al sistema de correo para el dominio DPTGR.CO.CU de la Empresa Provincial Integral de Transporte de Granma !!” -a ‘Content-type: text/html; charset=”us-ascii”‘ $i < /opt/zimbra/bin/welcome/welcome.html
    done

    # Limpiar lista diff

    rm -f $DIF_TMP

    else
    echo 'No hay servicio LDAP disponible'
    

    fi

    Esto me funciona al 100% excepto ke no me pone el displayName a la cuenta en el zimbra, sino ke aparece vacio. si me pudieras ayudar con eso, te agradeceria ke me escibieras a [email protected]. disfrutalo, ah y ponle 1 crontab cada 1 minuto.

    Reply
  4. diego barragan says

    4 April, 2019 at 20:27

    Buenas tardes, me puede ayudar como puedo hacer un script para que zimbra cuando una cuenta mande 1500 correos la cuenta se cierre automáticamente?

    Reply

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Primary Sidebar

  • Email
  • GitHub
  • LinkedIn
  • RSS
  • Twitter
  • YouTube

Gold Partners

Silver Partners

Libros Gratuitos

Cloud por vExperts
VMware por vExperts

VMware vExpert

Puesto 16 en Top vBlog

Calendario de Posts

July 2016
M T W T F S S
 123
45678910
11121314151617
18192021222324
25262728293031
« Jun   Aug »

Disclaimer

Todas las opiniones expresadas en este sitio son las mías propias y no representan las opiniones de ninguna compañía con la que haya trabajado, esté trabajando o vaya a estar trabajando.

Copyright © 2026 · El Blog de Jorge de la Cruz