Script simple para backups de días anteriores

La necesidad:

Tengo en un directorio unas carpetas con fecha del día los cuales contienen archivos. Necesito al final del día (luego de medía noche) copiar la carpeta del día que paso y que esto se realice de forma automática (cron)

[root@cuchilla2 dir1]# ls
2012-04-22     2012-04-23    2012-04-24   2012-04-25

Como se puede ver en dir1 existen directorios con fechas y necesito (en este ejemplo) pasar la de ayer (2012-04-25) al directorio de copias de seguridad ubicado en /Nas/backups y que de aquí en adelante pase automáticamente luego de las 00 horas lo del día anterior.

Solución:

Genero un script (bash) que toma la fecha del día, le resta un día y luego de esto copia el contenido a otro sitio. Dicho archivo lo generé en la carpeta /var/cron/backup.sh

#!/bin/sh
#almaceno la fecha de ayer en la variable “fecha”
fecha=`(date +”%Y-%m-%d” –date=”-$i days ago”)`
# sincroniza los archivos del día anterior en dir1
rsync -uarzhmP /dir1/$fecha /Nas/backups

donde
/dir1/$fecha = origen
/Nas/backups = destino

Luego de esto agrego una línea en crontab para que se ejecute a las 00:10 horas

10 0 * * * sh /var/cron/backup.sh

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s