jueves, 25 de septiembre de 2008

Tapeware: Envío de logs de backup por e-mail

Un día dando una vuelta por el Blog de Pablo Vernocchi, me encontré con una entrada en la que se explicaba como recibir por e-mail los logs de NTBACKUP http://www.itpros.com.ar/blog/cmo-recibir-los-logs-de-ntbackup-por-correo Por lo que se me pasó por la cabeza crear algún tipo de tarea similar para Tapeware, con el que me ha tocado lidiar en múltiples ocasiones y por lo menos las versiones 6 y 7 no incluían esa funcionalidad (habitualmente este software venía una licencia con las unidades de backup HP DAT, era más versátil que NTBACKUP, pero tenía las mismas carencias).

Explico un poco el funcionamiento: la idea es que cuando Tapeware termina de hacer el backup, genere un reporte, dado a que no escribe los reportes a disco directamente, como hace Ntbackup, sino que lo saca de la base de datos que tiene, lo generamos de forma manual, imprimiendolo a un fichero, de ahí que creemos la impresora con puerto local (en este caso usamos un txt, pero si tenemos una impresora PDF que nos lo genere automáticamente también nos vale). A continuación, mediante un CMD cogemos el fichero, y lo enviamos por e-mail mediante la aplicación blat. El script para el envío, básicamente incluye las variables con los parametros habituales (usuario, contraseña, servidor de correo, fichero, etc) así le podemos usar para otras funciones (por ej. un vbs que nos de la información del espacio en disco). El script lo ejecutamos mediante una tarea programada a una hora que el backup haya finalizado. En caso de que no se genere el fichero, el script genera uno con fecha y hora y el argumento de no hay fichero. El script al final, elimina el fichero que se ha generado para evitar problemas con envios posteriores.

Para empezar, en nuestro servidor deberemos copiar los ficheros descomprimidos de la aplicación blat preferentemente en una ruta incluida en el %PATH%.

Creamos una impresora llamada "Tapeware", con un driver genérico/solo texto, y que como puerto utilice un puerto a fichero que apunte a la ruta C:\WINDOWS\TEMP\Tapewarebackup.txt

Deberemos de comprobar con qué usuario se ejecuta el servicio de Tapeware, bien ejecutando services.msc o bien usando el comando sc qc tapeware (el valor SERVICE_START_NAME).

Si el servicio de Tapeware se ejecuta con un usuario, deberemos entrar con ese usuario en el servidor y configurar como predeterminada la impresora que hemos creado. En caso de que se ejecute como LOCALSYSTEM, deberemos seguir estos pasos:
  • Desde una ventana de comandos escribir lo siguiente: At 14:00 /interactive cmd.exe esto nos abrirá una ventana del cmd con el usuario System, solo en la consola (es decir, deberemos de estar delante de la máquina o usar VNC para verlo.
  • A continuación, ejecutamos para establecer la impresora predeterminada: RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n "Tapeware"

Ahora creamos nuestro script para enviar los correos:

Crear el fichero C:\windows\report.cmd

@ECHO OFF

REM *********************************************************

REM Envio de reportes por e-mail

REM requiere la aplicación blat y sus librerías copiadas en %systemroot%

REM Blat se puede descargar de: http://www.blat.net

REM *********************************************************

REM Definición de parámetros SMTP

SET MAILUSER=usuario@dominio.com

SET MAILPASS=contraseñacorreo

SET MAILFROM=usuario@dominio.com

SET MAILRCPT=destinatario@dominio.com

SET MAILSUBJ="Alerta de Backup %COMPUTERNAME%"

SET MAILSERVER=smtp.dominio.com

SET MAILPORT=25

SET FILEREPORT="%WINDIR%\TEMP\Tapewarebackup.txt"

SET MAILBODY=

IF EXIST %FILEREPORT% GOTO SENDFILE

:NOFILE

ECHO %DATE% - %TIME% - No Backup file >%FILEREPORT%

:SENDFILE

blat %FILEREPORT% -mailfrom %MAILFROM% -to %MAILRCPT% -subject %MAILSUBJ% -server %MAILSERVER% -port %MAILPORT% -u %MAILUSER% -pw %MAILPASS%

REM *********************************************************

REM Para envío de ficheros adjuntos usar los parametros –body y –attach fichero:

REM blat -mailfrom %MAILFROM% -to %MAILRCPT% -subject %MAILSUBJ% -server %MAILSERVER% -port %MAILPORT% -u %MAILUSER% -pw %MAILPASS% -body %MAILBODY% –attach %FILEREPORT%

REM *********************************************************

:END

DEL %FILEREPORT% /Q

REM *********************************************************

Creamos una tarea programada programado a una hora que el backup ya se haya finalizado. Por desgracia Tapeware en las versiones que he comentado antes no permite agregar scripts al finalizar trabajos, sino lo agregaríamos ahí.

Y por último habilitamos en la configuración del Backup de Tapeware que al finalizar la tarea que lo imprima.

No hay comentarios: