Siguiendo los pasos de la fuente, realice esto en mi servidor Zimbra
Crear un usuario que tenga permisos de administrador en el Zimbra, pero que no pueda ver los correos de los usuarios(admin can't view email), es como un administrador de segundo nivel.
Datos:
Dominio: dominio.local
Otro dominios que estan en el servidor: dominio2.com
Version Zimbra: 8.0.7
Ingresamos a la consola del zimbra por terminal
[root@mail ~]# su - zimbra
[zimbra@mail ~]$
Creamos una lista de distribucion al cual llamaremos admins
[zimbra@mail ~]$ zmprov cdl admins@dominio.local zimbraIsAdminGroup TRUE
Modificamos la lista de dsitrubucion
[zimbra@mail ~]$ zmprov mdl admins@dominio.local zimbraAdminConsoleUIComponents accountListView zimbraAdminConsoleUIComponents DLListView zimbraAdminConsoleUIComponents aliasListView zimbraAdminConsoleUIComponents resourceListView zimbraAdminConsoleUIComponents COSListView zimbraAdminConsoleUIComponents domainListView zimbraAdminConsoleUIComponents serverListView zimbraAdminConsoleUIComponents zimletListView zimbraAdminConsoleUIComponents adminZimletListView zimbraAdminConsoleUIComponents globalConfigView zimbraAdminConsoleUIComponents globalServerStatusView zimbraAdminConsoleUIComponents helpSearch zimbraAdminConsoleUIComponents saveSearch zimbraAdminConsoleUIComponents mailQueue zimbraAdminConsoleUIComponents backupsView zimbraAdminConsoleUIComponents certsView zimbraAdminConsoleUIComponents softwareUpdatesView zimbraAdminConsoleUIComponents bulkProvisionTasksView zimbraAdminConsoleUIComponents perServerStatisticsView zimbraAdminConsoleUIComponents globalPermissionView zimbraAdminConsoleUIComponents rightListView
Le asignamos todos los permisos, menos la caracteristica de "view mail".
[zimbra@mail ~]$ zmprov grr global grp admins@dominio.local +domainAdminRights ; zmprov grr global grp admins@dominio.local +adminConsoleAliasRights ; zmprov grr global grp admins@dominio.local +adminConsoleDomainRights ; zmprov grr global grp admins@dominio.local +adminConsoleCOSRights ; zmprov grr global grp admins@dominio.local +adminConsoleServerStatusRights ; zmprov grr global grp admins@dominio.local +adminConsoleResourceRights ; zmprov grr global grp admins@dominio.local +adminConsoleSoftwareUpdatesRights ; zmprov grr global grp admins@dominio.local +adminConsoleServerStatisticRights ; zmprov grr global grp admins@dominio.local +adminConsoleExtensionRights ; zmprov grr global grp admins@dominio.local +adminConsoleBackupRights ; zmprov grr global grp admins@dominio.local +adminConsoleMigrationRights ; zmprov grr global grp admins@dominio.local +adminConsoleMailQueueRights ; zmprov grr global grp admins@dominio.local +adminConsoleSavedSearchRights ; zmprov grr global grp admins@dominio.local +adminConsoleDLRights ; zmprov grr global grp admins@dominio.local +adminConsoleCertificateRights ; zmprov grr global grp admins@dominio.local +adminConsoleGlobalRights ; zmprov grr global grp admins@dominio.local +adminConsoleGlobalACLTabRights ; zmprov grr global grp admins@dominio.local +adminConsoleServerRights ; zmprov grr global grp admins@dominio.local +adminConsoleAccountRights ; zmprov grr global grp admins@dominio.local +adminConsoleZimletRights
Ya sea para dominios nuevos o existentes ejecutamos lo siguiente:
[zimbra@mail ~]$ zmprov grr domain dominio.local grp admins@dominio.local +domainAdminRights ; zmprov grr domain dominio.local grp admins@dominio.local -adminLoginAs
Como tambien tenemos el dominio dominio2.com, ejecutamos lo siguiente:
[zimbra@mail ~]$ zmprov grr domain dominio2.com grp admins@dominio.local +domainAdminRights ; zmprov grr domain dominio2.com grp admins@aruntnet.local -adminLoginAs
Crearemos un usuario administrador y lo agregaremos a la lista creada
- Usuario: adminzimbra@dominio.local
- Clave: mxpassw0rd
[zimbra@mail ~]$ zmprov ca adminzimbra@dominio.local mxpassw0rd zimbraIsDelegatedAdminAccount TRUE ; zmprov adlm admins@dominio.local adminzimbra@dominio.local
Finalmente, limpiamos la cache
[zimbra@mail ~]$ zmprov fc all
Ya podemos loguearnos con el nuevo usuario y verificaremos que este ya no puede leer los correos de los usuarios
Fuente: http://wiki.zimbra.com/wiki/Restrict_Admin_'View_Mail'
martes, 15 de abril de 2014
viernes, 22 de noviembre de 2013
Error durante actualizacion de Alfresco con locale LATIN1
Estaba actualizando la version del Alfresco que tengo instalado, para ello estuve siguiendo estos pasos:
http://www.fossoffice.com/en/2012/10/31/alfresco-community-upgrade/
En ese proceso me sale el siguiente mensaje de error:
Error: Se ha producido un error.
initdb.bin: encoding mismatch
The encoding you selected (UTF8) and the encoding that the
selected locale uses (LATIN1) do not match. This would lead to
misbehavior in various character string processing functions.
Rerun initdb.bin and either do not specify an encoding explicitly,
or choose a matching combination.
Estos es debido a los locales del SO, en mi caso tengo un CentOS 6.3 , para corregir ello realizamos lo siguiente:
# vi /etc/environment
...
LANG=en_US.utf-8
LC_ALL=en_US.utf-8
...
Guardamos los cambios y reinicio la PC ... fue lo que hice, no se si hay forma de cargar eso sin reiniciar ...
martes, 22 de octubre de 2013
Mejorando el filtrado del spamassassin en Zimbra
En este resumen vamos a ver los pasos para poder agregar herramientas ya conocidas que nos permitan mejorar la capacidad del filtrado del spam en Zimbra.
Datos:
Version de Zimbra: 8.0.4
SO: CentOS 6.2
Se asume que ya tenemos nuestro servidor Zimbra corriendo ...
A continuacion un breve resumen de lo que se usara...
- SPF(Sender Policy Framework)
Cuando un correo ingresa a nuestro servidor, el SPF revisa los datos de origen(IP), luego realiza una consulta a los servidores DNS(registro TXT para SPF) del dominio origen, comprueba si dicha IP esta autorizada a enviar o no.
- Razor
Es una red colaborativa de detección/notificación de spam. Cuando se recibe un spam nuevo, se informa a esa red de ese mensaje y a partir de ese momento, los servidores que reciban ese mismo mensaje y utilicen razor, lo detectará también como spam sin tener que configurar nada.
- Pyzor
Similar a Razor, se complementan de manera mutua.
Procedemos a instalar
1. SPF
# rpm -Uvh http://mirror.as24220.net/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# yum install perl-Mail-SPF -y
Nos aseguramos que dentro del archivo /opt/zimbra/conf/spamassassin/init.pre tenga descomentado la linea
loadplugin Mail::SpamAssassin::Plugin::SPF
2. Razor
# yum install -y perl-Razor-Agent razor-agents
Configuramos Razor
# mkdir /opt/zimbra/amavisd/.razor
# chown -Rf zimbra:zimbra /opt/zimbra/amavisd/.razor
# su - zimbra
$ razor-admin -home=/opt/zimbra/amavisd/.razor -create
$ razor-admin -home=/opt/zimbra/amavisd/.razor -discover
$ razor-admin -home=/opt/zimbra/amavisd/.razor -register
Nos aseguramos que en el archivo /opt/zimbra/conf/spamassassin/v310.pre tenga descomentado la linea
loadplugin Mail::SpamAssassin::Plugin::Razor2
3. Pyzor
# yum -y install pyzor python
Configuramos pyzor
# mkdir /opt/zimbra/amavisd/.pyzor
# chown zimbra:zimbra /opt/zimbra/amavisd/.pyzor
# su - zimbra
$ pyzor --homedir /opt/zimbra/amavisd/.pyzor discover
Nos aseguramos que en el archivo /opt/zimbra/conf/spamassassin/v310.pre tenga descomentado la linea
loadplugin Mail::SpamAssassin::Plugin::Pyzor
Adicionalmente instalaremos DCC, el cual tambien es una base de datos colaborativa com el Razor..
# wget http://rhyolite.com/anti-spam/dcc/source/dcc.tar.Z
# tar xzf dcc.tar.Z
# cd dcc-1.3.152
# ./configure --with-uid=zimbra
# make
# make install
# chown -R zimbra:zimbra /var/dcc
Hecho lo de arriba, ahora vamos al archivo /opt/zimbra/conf/spamassassin/local.cf y le agregamos al final
# vim /opt/zimbra/conf/spamassassin/local.cf
...
ok_languages en es
ok_locales en es
trusted_networks 127. 172.16.
skip_rbl_checks 0
use_razor2 1
use_pyzor 1
use_dcc 1
dcc_path /usr/local/bin/dccproc
dns_available yes
score DCC_CHECK 4.000
score SPF_FAIL 10.000
score SPF_HELO_FAIL 10.000
score RAZOR2_CHECK 2.500
score PYZOR_CHECK 2.500
score BAYES_99 4.300
score BAYES_90 3.500
score BAYES_80 3.000
bayes_ignore_header Received: from localhost
bayes_ignore_header Received: from mail.dominiolocal.com
Datos:
Version de Zimbra: 8.0.4
SO: CentOS 6.2
Se asume que ya tenemos nuestro servidor Zimbra corriendo ...
A continuacion un breve resumen de lo que se usara...
- SPF(Sender Policy Framework)
Cuando un correo ingresa a nuestro servidor, el SPF revisa los datos de origen(IP), luego realiza una consulta a los servidores DNS(registro TXT para SPF) del dominio origen, comprueba si dicha IP esta autorizada a enviar o no.
- Razor
Es una red colaborativa de detección/notificación de spam. Cuando se recibe un spam nuevo, se informa a esa red de ese mensaje y a partir de ese momento, los servidores que reciban ese mismo mensaje y utilicen razor, lo detectará también como spam sin tener que configurar nada.
- Pyzor
Similar a Razor, se complementan de manera mutua.
Procedemos a instalar
1. SPF
# rpm -Uvh http://mirror.as24220.net/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# yum install perl-Mail-SPF -y
Nos aseguramos que dentro del archivo /opt/zimbra/conf/spamassassin/init.pre tenga descomentado la linea
loadplugin Mail::SpamAssassin::Plugin::SPF
2. Razor
# yum install -y perl-Razor-Agent razor-agents
Configuramos Razor
# mkdir /opt/zimbra/amavisd/.razor
# chown -Rf zimbra:zimbra /opt/zimbra/amavisd/.razor
# su - zimbra
$ razor-admin -home=/opt/zimbra/amavisd/.razor -create
$ razor-admin -home=/opt/zimbra/amavisd/.razor -discover
$ razor-admin -home=/opt/zimbra/amavisd/.razor -register
Nos aseguramos que en el archivo /opt/zimbra/conf/spamassassin/v310.pre tenga descomentado la linea
loadplugin Mail::SpamAssassin::Plugin::Razor2
3. Pyzor
# yum -y install pyzor python
Configuramos pyzor
# mkdir /opt/zimbra/amavisd/.pyzor
# chown zimbra:zimbra /opt/zimbra/amavisd/.pyzor
# su - zimbra
$ pyzor --homedir /opt/zimbra/amavisd/.pyzor discover
Nos aseguramos que en el archivo /opt/zimbra/conf/spamassassin/v310.pre tenga descomentado la linea
loadplugin Mail::SpamAssassin::Plugin::Pyzor
Adicionalmente instalaremos DCC, el cual tambien es una base de datos colaborativa com el Razor..
# wget http://rhyolite.com/anti-spam/dcc/source/dcc.tar.Z
# tar xzf dcc.tar.Z
# cd dcc-1.3.152
# ./configure --with-uid=zimbra
# make
# make install
# chown -R zimbra:zimbra /var/dcc
Hecho lo de arriba, ahora vamos al archivo /opt/zimbra/conf/spamassassin/local.cf y le agregamos al final
# vim /opt/zimbra/conf/spamassassin/local.cf
...
ok_languages en es
ok_locales en es
trusted_networks 127. 172.16.
skip_rbl_checks 0
use_razor2 1
use_pyzor 1
use_dcc 1
dcc_path /usr/local/bin/dccproc
dns_available yes
score DCC_CHECK 4.000
score SPF_FAIL 10.000
score SPF_HELO_FAIL 10.000
score RAZOR2_CHECK 2.500
score PYZOR_CHECK 2.500
score BAYES_99 4.300
score BAYES_90 3.500
score BAYES_80 3.000
bayes_ignore_header Received: from localhost
bayes_ignore_header Received: from mail.dominiolocal.com
...
Habilitamos el DCC en el archivo /opt/zimbra/conf/spamassassin/v310.pre
# vim /opt/zimbra/conf/spamassassin/v310.pre
...
loadplugin Mail::SpamAssassin::Plugin::DCC
...
Tambien habilitaremos el DSPAM, esto examina el contenido de cada mensaje y aprende qué tipo de contenido el usuario considera como spam...
Para ello, hacemos lo siguiente:
# su - zimbra
$ zmlocalconfig -e amavis_dspam_enabled=true
Finalmente reiniciamos el zimbra...
# su - zimbra
$ zmcontrol restart
Finalmente reiniciamos el zimbra...
# su - zimbra
$ zmcontrol restart
viernes, 18 de octubre de 2013
Zimbra - zmstat-fd.pid not running
En un momento dado cuando veo el estado del servidor Zimbra, el estado del stats esta detenido
Ingresamos a la consola del Zimbra y vemos que un proceso no esta corriendo...
# su - zimbra
$ zmstatctl status
Running: zmstat-df
Running: zmstat-mtaqueue
Running: zmstat-mysql
process 4579 in /opt/zimbra/zmstat/pid/zmstat-fd.pid not running
Running: zmstat-io
Running: zmstat-allprocs
Running: zmstat-vm
Running: zmstat-cpu
Running: zmstat-proc
Running: zmstat-io-x
Running: zmstat-ldap
Ingresamos a la consola del Zimbra y vemos que un proceso no esta corriendo...
# su - zimbra
$ zmstatctl status
Running: zmstat-df
Running: zmstat-mtaqueue
Running: zmstat-mysql
process 4579 in /opt/zimbra/zmstat/pid/zmstat-fd.pid not running
Running: zmstat-io
Running: zmstat-allprocs
Running: zmstat-vm
Running: zmstat-cpu
Running: zmstat-proc
Running: zmstat-io-x
Running: zmstat-ldap
Este es un problema de permisos, para corregir ello ejecutamos el siguiente comando de zimbra como root
# /opt/zimbra/libexec/zmfixperms
Claro, tambien debemos asegurarnos que el usuario y grupo propietario sea zimbra y finalmente reiniciamos el servicio
# su - zimbra
$ zmcontrol restart
Nos fijamos el status del stat y vemos que ya esta corriendo ...
$ zmcontrol status Host mail.dominio.com.pe antispam Running ldap Running logger Running mailbox Running mta Running opendkim Running snmp Running spell Running stats Running zmconfigd Running
Espero le sirva a alguie mas ...!!!
miércoles, 16 de octubre de 2013
Reenvio en Postfix usando archivo aliases
Este es un pequeño recordatorio para hacer reenvio de correo en Postfix usando el archivo /etc/aliases
En este caso en particular se tiene un dominio virtual, aqui los datos para el ejemplo:
Dominio local: dominiolocal.com.pe
Dominio virtual: dominiovirtual.com.ec
Las cuentas de correo para el dominio local son:
useruno
userdos
Las cuentas de correo para el dominio virtual son:
e_useruno
e_userdos
Dato: el nombre del servidor es mail.dominiolocal.com.pe
Ahora si queremos hacer un reenvio de una cuenta local a otra seria sel siguiente modo:
Dentro del archivo /etc/aliases ponemos del siguiente modo
# vim /etc/aliases
...
#reenvio sin copia, el correo enviado a useruno llegara solo a la cuenta userdos
useruno: userdos@dominiolocal.com.pe
#reenvio con copia, el correo enviado a useruno llegara a ambas cuentas
useruno: useruno@dominiolocal.com.pe,userdos@dominiolocal.com.pe
#Para el caso de las cuentas virtuales seria del siguiente modo
#reenvio sin copia, el correo enviado a useruno llegara solo a la cuenta userdos
e_useruno: userdos@dominiovirtual.com.ec
#reenvio con copia, el correo enviado a e_useruno llegara a ambas cuentas
e_useruno: e_useruno@mail.dominiolocal.com.pe,userdos@dominiovirtual.com.ec
En este caso en particular se tiene un dominio virtual, aqui los datos para el ejemplo:
Dominio local: dominiolocal.com.pe
Dominio virtual: dominiovirtual.com.ec
Las cuentas de correo para el dominio local son:
useruno
userdos
Las cuentas de correo para el dominio virtual son:
e_useruno
e_userdos
Dato: el nombre del servidor es mail.dominiolocal.com.pe
Ahora si queremos hacer un reenvio de una cuenta local a otra seria sel siguiente modo:
Dentro del archivo /etc/aliases ponemos del siguiente modo
# vim /etc/aliases
...
#reenvio sin copia, el correo enviado a useruno llegara solo a la cuenta userdos
useruno: userdos@dominiolocal.com.pe
#reenvio con copia, el correo enviado a useruno llegara a ambas cuentas
useruno: useruno@dominiolocal.com.pe,userdos@dominiolocal.com.pe
#Para el caso de las cuentas virtuales seria del siguiente modo
#reenvio sin copia, el correo enviado a useruno llegara solo a la cuenta userdos
e_useruno: userdos@dominiovirtual.com.ec
#reenvio con copia, el correo enviado a e_useruno llegara a ambas cuentas
e_useruno: e_useruno@mail.dominiolocal.com.pe,userdos@dominiovirtual.com.ec
...
Luego de de guardar los cambios ejecutamos
# newaliases
Listo !
viernes, 10 de mayo de 2013
Zimbra - Enabled services read from cache. Service list may be inaccurate
En un momento dado el servidor Zimbra no estaba operativo, cuando trate de reniciar me salia el siguiente mensaje de "error".
# su - zimbra
# zmcontrol start
Host mail.dominio.com
Unable to determine enabled services from ldap.
Enabled services read from cache. Service list may be inaccurate.
Starting logger...Failed.
Starting logswatch...ERROR: service.FAILURE (system failure: ZimbraLdapContext) (cause: javax.net.ssl.SSLHandshakeException sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: timestamp check failed)
zimbra logger service is not enabled! failed.
Buscando en la web, encontre que esto sucede porque los certificados han expirado.
Para ello se puede verificar ejecutando lo siguiente:
# /opt/zimbra/bin/zmcertmgr viewdeployedcrt all
Para "corregir" lo mencionado, realice lo siguiente:
Generar un nuevo CA
# /opt/zimbra/bin/zmcertmgr createca -new
# /opt/zimbra/bin/zmcertmgr createcrt -new -days 365
# /opt/zimbra/bin/zmcertmgr deploycrt self
# /opt/zimbra/bin/zmcertmgr deployca
# /opt/zimbra/bin/zmcertmgr viewdeployedcrt
Luego
# /opt/zimbra/java/bin/keytool -import -alias root -keystore /opt/zimbra/java/jre/lib/security/cacerts -storepass changeit -file /opt/zimbra/conf/ca/ca.pem
Trust this certificate? [no]: yes Certificate was added to keystore
Finalmente reiniciamos el servicio
# su - zimbra
# zmcontrol restart
Espero le sirva a alguien mas ...
lunes, 29 de abril de 2013
BackUp - Zimbra Open Source
La version de Zimbra open source no cuenta con una interfaz web de BackUp's, para ello existen scripts que se pueden realizar mediante los comandos de Zimbra. Para un facil manejo de ello, elabore un pequeño script.
Edito el archivo /usr/local/sbin/ZimbraBackup.sh
# vim /usr/local/sbin/ZimbraBackup.sh
#!/bin/bash
echo ""
echo "*******************************************"
echo "******** Zimbra BackUp & Restore ********"
echo "*******************************************"
echo ""
echo "Seleccione una opcion..."
echo ""
echo "BackUp completo de todo el Zimbra : opcion 1"
echo "BackUp de todas las cuentas : opcion 2"
echo "BackUp de una cuenta : opcion 3"
echo "Restore completo de todo el Zimbra : opcion 4"
echo "Restore de todas las cuentas : opcion 5"
echo "Restore de una cuenta : opcion 6"
echo "Enviar BackUp por SSH a otro servidor : opcion 7"
echo ""
echo -n "Ingrese opcion : "
read opcion
if [ $opcion -eq 1 ]; then
echo ""
echo "BackUp Completo"
echo "---------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo -n "Ingrese ruta destino local :"
read destino
echo "Se va a realizar el BackUp completo de /opt/zimbra a $destino ..."
/usr/bin/rsync -aHK --delete /opt/zimbra $destino/
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 2 ]; then
echo ""
echo "Backup all email accounts"
echo "-------------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta destino local :"
read destino
echo "Generando backup a la ruta $destino/ ..."
DATE=`date +"%a"`
ZDUMPDIR=$destino/$DATE
ZMBOX=/opt/zimbra/bin/zmmailbox
if [ ! -d $ZDUMPDIR ]; then
mkdir -p $ZDUMPDIR
fi
echo " Running zmprov ... "
for mbox in `/opt/zimbra/bin/zmprov -l gaa`
do
echo " Generating files from backup $mbox ..."
$ZMBOX -z -m $mbox getRestURL "//?fmt=zip" > $ZDUMPDIR/$mbox.zip
done
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 3 ]; then
echo ""
echo "Backup una cuenta"
echo "-----------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta destino local :"
read destino
echo -n "Ingrese una cuenta de correo, ejemplo user@dominio.com :"
read cuenta
echo "Generando backup a la ruta $destino/ ..."
DATE=`date +"%a"`
ZDUMPDIR=$destino/$DATE
ZMBOX=/opt/zimbra/bin/zmmailbox
if [ ! -d $ZDUMPDIR ]; then
mkdir -p $ZDUMPDIR
fi
$ZMBOX -z -m $cuenta getRestURL "//?fmt=zip" > $ZDUMPDIR/$cuenta.zip
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 4 ]; then
echo ""
echo "Restore todo el Zimbra"
echo "----------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta donde esta el Backup completo(todo el directorio zimbra) :"
read origen
echo "Generando backup desde $origen hacia /opt/zimbra..."
/usr/bin/rsync -aHK --delete $origen /opt/zimbra
/bin/chown -R zimbra:zimbra /opt/zimbra
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 5 ]; then
echo ""
echo "Restore all email accounts"
echo "--------------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta de origen :"
read origen
echo "Restaurando backup desde $origen/ ..."
ZMBOX=/opt/zimbra/bin/zmmailbox
if [ ! -d $origen ]; then
echo "Backups do not exist !"
exit 255;
fi
for mbox in `/opt/zimbra/bin/zmprov -l gaa`
do
echo " Restoring files from backup $mbox ..."
$ZMBOX -z -m $mbox postRestURL "//?fmt=zip&resolve=reset" $origen/$mbox.zip
done
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 6 ]; then
echo ""
echo "Restore de una cuenta"
echo "---------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta de origen :"
read origen
echo -n "Ingrese la cuenta de correo, ejemplo user@dominio.com :"
read cuenta
echo "Restaurando la cuenta $cuenta desde $origen ..."
ZMBOX=/opt/zimbra/bin/zmmailbox
$ZMBOX -z -m $cuenta postRestURL "//?fmt=zip&resolve=reset" $origen/$cuenta.zip
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 7 ]; then
echo ""
echo "Enviar por SSH a otro servidor"
echo "------------------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta del BackUp :"
read origen
echo -n "Ingrese la IP y ruta destino del BackUP, ejemplo 192.168.1.100:/backup/ :"
read destino
echo "Enviado el Backup desde $origen hacia el servidor $destino ..."
/usr/bin/rsync -aHK --delete $origen $destino
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
echo "Ingrese una opcion valida"
fi
fi
fi
fi
fi
fi
fi
Finalmente le damos permiso de ejecucion
# chmod +x /usr/local/sbin/ZimbraBackup.sh
Listo, espero le sirva a alguien ...
Edito el archivo /usr/local/sbin/ZimbraBackup.sh
# vim /usr/local/sbin/ZimbraBackup.sh
#!/bin/bash
echo ""
echo "*******************************************"
echo "******** Zimbra BackUp & Restore ********"
echo "*******************************************"
echo ""
echo "Seleccione una opcion..."
echo ""
echo "BackUp completo de todo el Zimbra : opcion 1"
echo "BackUp de todas las cuentas : opcion 2"
echo "BackUp de una cuenta : opcion 3"
echo "Restore completo de todo el Zimbra : opcion 4"
echo "Restore de todas las cuentas : opcion 5"
echo "Restore de una cuenta : opcion 6"
echo "Enviar BackUp por SSH a otro servidor : opcion 7"
echo ""
echo -n "Ingrese opcion : "
read opcion
if [ $opcion -eq 1 ]; then
echo ""
echo "BackUp Completo"
echo "---------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo -n "Ingrese ruta destino local :"
read destino
echo "Se va a realizar el BackUp completo de /opt/zimbra a $destino ..."
/usr/bin/rsync -aHK --delete /opt/zimbra $destino/
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 2 ]; then
echo ""
echo "Backup all email accounts"
echo "-------------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta destino local :"
read destino
echo "Generando backup a la ruta $destino/ ..."
DATE=`date +"%a"`
ZDUMPDIR=$destino/$DATE
ZMBOX=/opt/zimbra/bin/zmmailbox
if [ ! -d $ZDUMPDIR ]; then
mkdir -p $ZDUMPDIR
fi
echo " Running zmprov ... "
for mbox in `/opt/zimbra/bin/zmprov -l gaa`
do
echo " Generating files from backup $mbox ..."
$ZMBOX -z -m $mbox getRestURL "//?fmt=zip" > $ZDUMPDIR/$mbox.zip
done
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 3 ]; then
echo ""
echo "Backup una cuenta"
echo "-----------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta destino local :"
read destino
echo -n "Ingrese una cuenta de correo, ejemplo user@dominio.com :"
read cuenta
echo "Generando backup a la ruta $destino/ ..."
DATE=`date +"%a"`
ZDUMPDIR=$destino/$DATE
ZMBOX=/opt/zimbra/bin/zmmailbox
if [ ! -d $ZDUMPDIR ]; then
mkdir -p $ZDUMPDIR
fi
$ZMBOX -z -m $cuenta getRestURL "//?fmt=zip" > $ZDUMPDIR/$cuenta.zip
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 4 ]; then
echo ""
echo "Restore todo el Zimbra"
echo "----------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta donde esta el Backup completo(todo el directorio zimbra) :"
read origen
echo "Generando backup desde $origen hacia /opt/zimbra..."
/usr/bin/rsync -aHK --delete $origen /opt/zimbra
/bin/chown -R zimbra:zimbra /opt/zimbra
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 5 ]; then
echo ""
echo "Restore all email accounts"
echo "--------------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta de origen :"
read origen
echo "Restaurando backup desde $origen/ ..."
ZMBOX=/opt/zimbra/bin/zmmailbox
if [ ! -d $origen ]; then
echo "Backups do not exist !"
exit 255;
fi
for mbox in `/opt/zimbra/bin/zmprov -l gaa`
do
echo " Restoring files from backup $mbox ..."
$ZMBOX -z -m $mbox postRestURL "//?fmt=zip&resolve=reset" $origen/$mbox.zip
done
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 6 ]; then
echo ""
echo "Restore de una cuenta"
echo "---------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta de origen :"
read origen
echo -n "Ingrese la cuenta de correo, ejemplo user@dominio.com :"
read cuenta
echo "Restaurando la cuenta $cuenta desde $origen ..."
ZMBOX=/opt/zimbra/bin/zmmailbox
$ZMBOX -z -m $cuenta postRestURL "//?fmt=zip&resolve=reset" $origen/$cuenta.zip
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
if [ $opcion -eq 7 ]; then
echo ""
echo "Enviar por SSH a otro servidor"
echo "------------------------------"
echo Start time of the backup = $(date +%T)
before="$(date +%s)"
echo ""
echo -n "Ingrese ruta del BackUp :"
read origen
echo -n "Ingrese la IP y ruta destino del BackUP, ejemplo 192.168.1.100:/backup/ :"
read destino
echo "Enviado el Backup desde $origen hacia el servidor $destino ..."
/usr/bin/rsync -aHK --delete $origen $destino
before2="$(date +%s)"
echo The process lasted = $(date +%T)
after="$(date +%s)"
elapsed="$(expr $after - $before)"
hours=$(($elapsed / 3600))
elapsed=$(($elapsed - $hours * 3600))
minutes=$(($elapsed / 60))
seconds=$(($elapsed - $minutes * 60))
echo The complete backup lasted : "$hours hours $minutes minutes $seconds seconds"
else
echo "Ingrese una opcion valida"
fi
fi
fi
fi
fi
fi
fi
Finalmente le damos permiso de ejecucion
# chmod +x /usr/local/sbin/ZimbraBackup.sh
Listo, espero le sirva a alguien ...
Suscribirse a:
Entradas (Atom)