bggo / Zmbkpose

The zmbkpose tool is a shell script that does hot backup and hot restore of ZCS Opensource accounts, GPL(OPENSOURCE). It can run from any host in the net, which means that it can be set on a backup server already existent.

Home Page:http://wiki.zimbra.com/wiki/HOT_Backup_and_HOT_Restore

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Zmbkpose -r incremental problem

Eduvaldo opened this issue · comments

Hola tengo el siguiente problema cuando quiero restaurar un incremental tengo el siguiente problema primero detallo como lo estoy haciendo.
Utilizo el comando
zmbkpose -r admin@coinrefri.com inc-20130102010002
luego de esto me da los siguientes errores.

<title>Error 401 must authenticate</title>

HTTP ERROR 401

Problem accessing /service/home/admin@coinrefri.com/Junk. Reason:

    must authenticate


Powered by Jetty://

Alguna sugerencia

Hola. Hay un error de invocacion de zmbkpose .
Primeramente dime por favor, si estas usando la rama "master", o la rama "rewrite_proposal_v2.0"

Si no me equivoco estoy utilizando rewrite_proposal_v2.0

Perdon estoy utilizando la rama Master

¿La cuenta a restaurar esta en estado "closed" ?. Si es así intenta activarla y probar nuevamente.
¿Puede ser que sea incorrecta la clave configurada en ADMINPASS del archivo /etc/zmbkpose.conf ?
Si no funciona, cuéntame la versión de zimbra que estas usando.

Podrias detallarme eso de la cuenta Closed y como activarla en cuando a lo dicho te expliko que tengo un zimbra
zcs-7.2.0_GA_2669.RHEL6_64.20120410002025 la contraseña que he puesto es la del Admin con la que ingreso a la consola de adminitracion

Alguna Ayuda Liandros estoy que quiero recuperar un backup con suma urgencia y solo he podido restaurar el Full y no los incrementales

La clave parece correcta. Con cuenta closed me referia al estado de la cuenta que podes ver desde el panel de administracion de zimbra. Los posibles estados son activo/cerrado/bloqueado/mantenimiento . Esta la cuenta en estado activo?

Si todas las cuentas estan en estado activo y la clave tambien es la correcta algun problema aparte de eso no se un tema de persmisos o algo que se me este escapando .

Verifiquemos que el archivo incremental sea correcto:
$ file dir/arch.tgz
Esto deberia responder que es de tipo "gzip compressed data" entre otras cosas.
Veamos el contenido del archivo tar :
$ tar -ztvf dir/arch.tgz
Si lista los archivos de mail correctamente, entonces puedes ir directamente a la cuenta del usuario
(usando la interface de administrador si no conoces la clave de la cuenta), y en las preferencias
deberia existir una opcion de importar un backup de las cuentas. Intenta importar directamente los archivos
incrementales que tengas.

Bueno intente hacer lo q me indicas pero al listar por ejemplo una cuenta con el comando $ tar -ztvf dir/arch.tgz me indica el siguiente error

gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now

Liandros pude restaurar un incremental en una de las cuentas el problema es que tengo como 40 usuarios y tendria que hacerlo manualmente no hay alguna opcion dentro del script que me permita agilizar el trabajo ??? estoy a la espera de tus comentarios

Al parecer el archivo sobre el que ejecutaste "tar -ztvf dir/arch.tgz", esta incompleto, por el error que me muestras. Pero no me has mostrado si al menos listo algun archivo de su contenido. Me muestras poca informacion, de cada comando.
Es necesario que detalles mejor las operaciones que realizas para que podamos ayudarte. Pega cada comando con su salida completa. Muestrame el comando "file" pedido, con su resultado.
Si pudiste restaurar una cuenta como mencionas, detallame como hiciste para que pueda saber cual es el componente que falla.

Bueno lo que hize fue lo siguiente segun tus recomendaciones ingrese a la carpeta de uno de los incrementales una vez dentro listo los archivos y tengo 4 tipos de archivos admin@midomio.com.ldiff admin@midominio.com.Junk.tgz admin@midominio.com.tgz admin@midominio.com.Trash.tgz una vez hecho esto busque los archivos por tamaño y pude comprobar que al listar cualquier que no tuviera archivos dentro con el comando tar -ztvf dir/arch.tgz me mostraba el error mencionado.

Al agarrar un archivo con data dentro me mostraba los siguiente

-r--r--r-- 0/message 690 2013-01-02 00:15 Inbox/0000015761-Welcome Tutors, Agencies, Parents_students. Register Now - free!.eml.meta
-rw-r--r-- 0/message 8271 2013-01-02 00:15 Inbox/0000015761-Welcome Tutors, Agencies, Parents_students. Register Now - free!.eml

lo que hize luego fue

zmbkpose -r cuenta1@midomio.com inc-20130103010002

y luego ingrese via web y pude comprobar que se habia restaurado el o los correos que habia dentro del incremental .

Mi pregunta es la siguiente cuando corro el scrip zmbkpose --restoreAllAccounts por que no puede restaurar los incrementales y por que me da el error antes mencionado.

Estoy a la espera de tus comentarios

Al parecer hay varios archivos que parecer no tener un contenido correcto, y cada vez que intentas restaurar 
 uno de ellos, ya sea individualmente, con cuando se restauran todas las cuentas, obtienes el error ya conocido.
No soy uno de los chicos desarroladores de zmbkpose, pero se me ocurre lo sig. : 

  * Buscar todos los archivos invalidos en el directorio de backups (definido por la variable $WORKDIR en la configuracion): Lo 
  sig es toda una sola linea :

  erroneos=0 ; for arch in $(find "$WORKDIR" -type f |egrep '.tgz$' );do let total++ ; tar -ztf $arch >/dev/null 2>&1 || { echo $arch ; let erroneos++ ;};done ; echo "erroneos $erroneos de $total"

   * Se me ocurre que si estos archivos son erroneos, ya no interesan, pero borrarlos ocasionaria un problema ya
       que estan listados en el archivo de informacion de sessiones. Quizas se los pueda reemplazar por un simple
       archivo vacio para evitar el error : Lo sig es toda una sola linea :

   for arch in $(find "$WORKDIR" -type f |egrep '.tgz$' );do tar -ztf $arch >/dev/null 2>&1 || tar -zc -T /dev/null -f $arch ;done

Nota que estoy suponiendo que no hay nada rescatable en estos archivos incrementales con errores.
Quizas, previo a sobreescribir estos archivos, se podria examinarlos para obtener aquellos que a pesar
de estar incompletos, hay algo salvable en su interior. Lo sig. es toda una sola linea:

for arch in $(find "$WORKDIR" -type f |egrep '.tgz$' );do if ! lista=$(tar -ztf $arch 2&gt;/dev/null); then [ $(echo "$lista"|sed -re '/^$/d'|wc -l) -gt 0 ] && echo "$arch con archivos salvables" ; fi ;done

Claro entiendo el punto verificar mendiante un scrip archivos vacios o corruptus pero la idea seria poder indicarle al propio scrip que salte estos errores.

Tratare de hacer algo con el propio Script a fin que me salte los archivos corruptos y asi poder simplificar el trabajo.

Si tienes algun idea estoy presto a escucharla. Gracias

Por lo que veo, todos los archivos de backups estan mencionados en el log de session, ( $WORKDIR/sessions.txt ), el sacarlos de alli, hara que no se tomen en cuenta para la restauracion.
El problema aqui a mejorar es determinar porque tienes estos archivos corruptos.