domingo, noviembre 11, 2007

[Soft - Programas varios] Programar copias de seguridad usando una grabadora CD/DVD

Desde hace tiempo llevo buscando un buen programa que me permita hacer copias de seguridad programadas en CD/DVD.
He probado muchos pero ninguno me ha convencido, así que he recurrido a las Tareas programadas de Windows, el compresor/descompresor de archivos WinRAR, CommandBurner, un programa de grabación gratuito que se puede usar por línea de comandos, y SendEmail, un cliente de correo electrónico, que al igual que CommandBurner, se utiliza por la línea de comandos.

¿Cómo realizamos la copia de seguridad?
Crearemos un fichero batch, que realizará las siguientes tareas:

1.- Comprimir todos los archivos de la copia de seguridad en un fichero RAR.

2.- Grabar el fichero RAR resultado del paso anterior en un DVD.

3.- Enviar un correo electrónico al Administrador para notificar que el proceso se ha realizado.


Este fichero será ejecutado de forma automática a un hora determinada mediante las Tareas programadas de Windows.


*** Antes de comenzar con la implementación del fichero batch, recomiendo crear una carpeta en nuestro disco duro, por ejemplo c:\copia_de_seguridad, donde guardaremos todos los ficheros necesarios. ***


Veamos la implementación del fichero batch...


- PASO 1 -

El primer paso, lo vamos a dividir en dos partes:

1.- Comprobar si existe el fichero RAR de copia de seguridad. En caso afirmativo, se elimina.

2.- Crear el fichero comprimido RAR con los datos de la copia de seguridad.

Veámos el código correspondiente a estas tareas...

1.- IF EXIST backup.rar del backup.rar

2.- "c:\Archivos de programa\WinRAR\rar.exe" a -r -m5 -s -rr backup.rar @lista_ficheros.txt

La explicación de los parámetros es la siguiente:
a : Crea un fichero comprimido.
-r : Añade también los subdirectorios.
-m5 : Grado de compresión más alto.
-s : Crea un archivo sólido.
-rr : Añade un registro de recuperación, por si el fichero se daña.
backup.rar : Nombre del fichero resultante. Se crea en el directorio "c:\copia_de_seguridad".
@lista_ficheros.txt : Fichero ubicado en el directorio "c:\copia_de_seguridad" que contiene un listado de todos los archivos y directorios con sus rutas absoluta que queremos comprimir.


- PASO 2 y 3-

Ambos pasos se mezclan en varias líneas de código que comienzan con una condición:

1. Si el fichero comprimido RAR sobrepasa la capacidad de un CD/DVD:

2. --- Enviar correo electrónico al Administrador para avisarle de este suceso.

3. en caso contrario:

4. --- Grabar el fichero en el CD/DVD.

5. --- Enviar correo electrónico al Administrador para avisarle de este suceso.



Traduzcamos los dos pasos a su código correspondiente:

1. IF %~z1 GTR 4700372992 (

Donde %~z1 devuelve el tamaño del fichero cuyo nombre se le ha pasado por parámetro al fichero batch desde la línea de comandos. Esto implica, que cuando ejecutemos el fichero batch, deberemos escribir algo como esto:

c:\copia_de_seguridad>fichero_batch.bat backup.rar

2. sendemail.exe -f servidor@empresa.com -t administrador@empresa.com -u Error en la copia de seguridad -m El fichero de copia de seguridad ha sobrepasado el tamaño máximo -s smtp.empresa.com -xu usuario -xp contraseña

La explicación de los parámetros de este comando son los siguientes:
-f servidor@empresa.com : espeficica el remitente del correo electrónico
-t administrador@empresa.com : espeficica el destinatorio del correo electrónico
-u Error en la copia de seguridad realizada : Asunto del correo electrónico
-m El fichero de copia de seguridad ha sobrepasado el tamaño máximo : Cuerpo del mensaje
-s smtp.empresa.com : Servidor SMTP que utilizaremos para el envío del correo electrónico. Si no tenemos servidor SMTP, podemos instalar uno gratuito en nuestro ordenador como Mercury Mail Transport System.
-xu usuario : Nombre de usuario para autenticarnos en el servidor SMTP
-xp contraseña : Contraseña asociada al nombre de usuario anterior

3. ) ELSE (

4. "c:\Archivos de programa\CommandBurner\cmdburn.exe" burn /f backup.rar /erase

La explicación de los parámetros es la siguiente:
burn : Realiza una grabación.
/f backup.rar : Indica el fichero que se va a grabar con su ruta absoluta.
/erase : Realiza un borrado previo del CD/DVD regrabable si contiene datos.
Con esto conseguiremos realizar copias de seguridad programadas en nuestra grabadora CD/DVD y poder acceder fácilmente a los datos almacenados para recuperarlos en caso de pérdida.

En este cuarto paso, podemos encontrarnos con un problema que detallo en el Anexo I (ver al pie del artículo).

5. sendemail.exe -f servidor@empresa.com -t administrador@empresa.com -u Copia de seguridad realizada -m La copia de seguridad se ha realizado correctamente -s smtp.empresa.com -xu usuario -xp contraseña



Según hemos visto en el primer punto de los PASOS 2 y 3, para ejecutar el fichero batch, necesitaremos pasar el nombre del fichero comprimido RAR. Con esto, podemos perfeccionar nuestro fichero batch, sustituyendo el nombre del fichero comprimido RAR, backup.rar, por la variable que almacena el parámetro que se ha pasado por la línea de comandos, que es %1.

Así resultaría el fichero batch después de esta modificación:

IF EXIST %1 del %1

"c:\Archivos de programa\WinRAR\rar.exe" a -r -m5 -s -rr %1 @lista_ficheros.txt

IF %~z1 GTR 4700372992
(

sendemail.exe -f servidor@empresa.com -t administrador@empresa.com -u Error en la copia de seguridad -m El fichero de copia de seguridad ha sobrepasado el tamaño máximo -s smtp.empresa.com -xu usuario -xp contraseña

) ELSE (

"c:\Archivos de programa\CommandBurner\cmdburn.exe" burn /f %1 /erase

sendemail.exe -f servidor@empresa.com -t administrador@empresa.com -u Copia de seguridad realizada -m La copia de seguridad se ha realizado correctamente -s smtp.empresa.com -xu usuario -xp contraseña


)




Anexo I

Para que el programa de grabación CommandBurner funcione correctamente, en caso de tener varias unidades ópticas, la grabadora que vayamos a usar, debe tener la primera letra por orden alfábetico de todas las unidades, es decir, si tenemos un lector DVD, una grabadora de CD y una grabadora de DVD y queremos usar esta última, las letras de las unidades deberían de quedar así:

Lector DVD -> F:
Grabadora CD -> E:
Grabadora DVD -> D:

o de esta otra forma...

Lector DVD -> E:
Grabadora CD -> F:
Grabadora DVD -> D:

Siempre la grabadora a usar tendrá la primera letra por orden alfabético.
Si queremos cambiar las letras de las unidades ópticas lo haremos desde la Administración de discos. Podemos abrirla desde Inicio->Ejecutar y escrimos: diskmgmt.msc en el recuadro Abrir. Pulsamos el botón Aceptar.
Hacemos clic con el botón derecho del ratón sobre la unidad óptica que queremos cambiar la letra de unidad asignada y seleccionamos la opción "Cambiar la letra y rutas de acceso de unidad..."

captura


Luego hacemos clic en el botón Cambiar.

captura2


Seleccionamos una letra del cuadro desplegable y pulsamos el botón Aceptar en la misma ventana y luego en la anterior para cerrar ambas. Por último cerramos la Administración de discos.

captura3



Finalizando...

Me falta por detallar como agregar la tarea en las Tareas programadas de Windows, pero creo que es bastante sencillo, sólo hay que tener presente que necesitamos una cuenta con privilegios de Administrador y programar el comando:

c:\copia_de_seguridad\fichero_batch.bat backup.rar


Por cierto, un último apunte: las rutas de las aplicaciones WinRAR y CommandBurner usadas con las que el programa de instalación sugiere de forma predeterminada. El programa SendEmail ha sido copiado directamente a la carpeta de trabajo.

Todo el artículo se ha realizado usando un ordenador con sistema operativo Windows XP Professional SP2, me imagino que con Windows 2000 Professional SP4 y Windows 2003 Server también funcionará.





<< Home

This page is powered by Blogger. Isn't yours?