sábado, enero 03, 2015

Realizar copias de seguridad de gmail: gmvault (II)

En la entrada que servía de introducción al uso de gmvault se comentó el proceso básico de instalación y uso del programa para realizar una copia de seguridad de una cuenta de gmail y su posterior restauración. Sin embargo, el programa es mucho más flexible a la hora de realizar estas operaciones y tiene opciones que permiten un control total de los mensajes sobre los cuales realizamos la copia de seguridad.

gmvault tiene cuatro comandos principales, las cuales pueden verse con ayuda de la opción -h

  • sync, se utiliza para sincronizar los correos desde el servidor. Se baja los correos y crea la estructura de base de datos donde se almacenan los mismos.
  • restore, se utiliza para restaurar una copia de seguridad local en los servidores de gmail.
  • check, compara la copia de seguridad local con el correo almacenado en los servidores de gmail, borrando de la copia local aquellos que no están presentes en los servidores.
  • export, con esta opción se permite exportar la información que tengamos almacenado en una copia de seguridad local a un formato que nos interese.

Los cuatro comandos anteriores tienen todos varias opciones comunes. La primera es -h que muestra las diferentes opciones que tiene cada comando. --debug / -debug activa las opciones de depuración de cada parte del programa. Por último -d dir / --db-dir dir que especifica el trayecto al directorio que se va a usar para almacenar la base de datos, en este caso especificada por dir.

En la anterior entrada comentaba que la autentificación se realizaba a través de xoauth1, pero también se puede usar una contraseña convencional con ayuda de la opción -p. La opción de usar xoauth está por defecto, aunque se puede especificar con -o. Relacionado con esta última está la opción -2 o --2-legged-oauth, que se utiliza en aquellas cuentas de Google Apps Bussines y las cuentas de Google de educación.

Existen dos opciones que permiten especificar la conexión a los servidores de imap, que son --server y --port. Por defecto el valor de estas opciones son imap.gmail.com y 993. Tengo que decir, que no he probado usar este programa contra otro servidor imap, aunque supongo que con ayuda de la opción -p, --server y --port se puede usar para copias de seguridad de otros servidores de correo imap o para poder reconstruir en otro servidor el correo bajado de gmail.

Por ejemplo, la siguiente orden permite sincronizar el correo en el directorio /Almacen/backup/correo de la cuenta correo@gmail.com, usando una contraseña que pedirá el programa, aunque como dice la ayuda, no es recomendable.

(gmvault)swordcoast:gmvault terron$ gmvault sync -p -d /Almacen/backup/correo correo@gmail.com

Aunque no es recomendable, el programa puede almacenar ofuscada la contraseña que pide con la opción -p, para poder usarla posteriormente sin necesidad de volver a pedirla de nuevo, y eso se hace con la ayuda de la opción --store-passwd.

Una opción muy interesante que se tiene a la hora de realizar una copia de seguridad del correo es el tipo de copia que se quiere hacer. El tipo de copia se especifica a través del parámetro -t y puede tomar los valores full,quick o custom. Con full se realiza una copia completa del correo que existe en el servidor, quick sólo realizará la copia de los correos con una antigüedad determinada, por defecto diez días. El tipo custom permite especificar una consulta, ya sea usando el lenguaje de consultas de IMAP (puede verse en la RFC 3501 o la extensiones de Google. También puede usar para especificar el filtro de correos la sintaxis de filtros de gmail. La consulta imap se le pasa a gmvault con ayuda del parámetro -r o --imap-req, mientras que la consulta con filtros de gmail usa el parámetro -g o --gmail-req

Es interesante la potencia que da a la hora de hacer una copia de seguridad la opción custom. Por ejemplo, supongamos que de la cuenta correo@gmail.com queremos realizar una copia de todo el año 2012 y además de los correos que se le han enviado a una determinada persona fulanito@gmail.com Eso puede hacerse con la siguiente orden:

(gmvault)swordcoast:~ terron$ gmvault sync -p -d ~/gmail.backup -t custom --imap-req "Since 1-Jan-2014 Before 1-Jan-2015 TO fulanito@gmail.com" correo@gmail.com

En el apartado 6.4.4 d la RFC 3501 se pueden ver la multitud de filtros que podemos usar en nuestras peticiones tipo custom para obtener la copia de los correos que nos interesan. El control que se permite llega al punto de poder filtrar por cualquier cabecera del mensaje de correo electrónico.

Si se está acostumbrado a usar los filtros de gmail, por ejemplo para hacer una copia de seguridad de todos los correos de fulanito@gmail.com.

gmvault sync -t custom -g "From:fulanito@gmail.com" -p -d ~/gmail.backup correo@gmail.com

Hacer notar que los filtros que se especifican con -g, --gmail-req o -r, --imap-req sólo funcionan si el tipo de sincronización que se configura a través del parámetro -t es custom.

Otra opción interesante es la posibilidad que tiene de empezar a bajar el correo desde el punto donde la ejecución del programa fue interrumpida. Internamente, gmvault guarda el último identificador del correo que se ha bajado. Con ayuda de las opciones --resume o --restart en vez de comenzar a bajarse el correo desde el comienzo, lo hace desde el último identificador que se bajó.

A la hora de realizar una copia de seguridad conviene que no se borre en la base de datos local los correos que han sido borrados en el servidor, ya que por defecto, el comportamiento de gmvault es el de sincronizar la cuenta remota con la copia de seguridad local, siendo la copia local un espejo de la remota. Si este comportamiento no es el deseado se puede desactivar con la opción -c o --check-db usando el valor no. De esta manera se puede realizar copias sin preocuparnos de perder lo que se ha borrado en el servidor.

Referencias

Notas

  1. Esta forma de autentificación dejará de estar soportada por Google en Mayo del 2015, para ser sustituida por XOAUTH2

1 comentario:

Luis Tamiche dijo...

Si lo prefieres, puedes usar otros programas para recuperar contraseña wifi y obtener el listado de contraseñas WiFi guardadas: WirelessKeyDumpmuestra un sencillo listado en línea de comandos, mientras que WirelessKeyView muestra todas las claves en una sencilla ventana.