Rotacion de respaldos

El otro (dia, jaja lo pense y no lo escribi) Gwolf y un servidor estabamos discutiendo sobre un hack para rotar los backups de una base de datos… en bash… que en realidad no era del agrado de ninguno de los dos, pero que funcionaba… eso me recordo una cosa importante.

!En mis servidores mi propio hack que hace la rotacion de las dbs es peor aun!, aunque alguna vez intente usar el propio logrotate, tenia un script tambien en bash para rotar los backups que solo hacia algo asi como el 1.gz muevelo a 2.gz, luego el 2.gz muevelo a 3.gz y finalmente el 3.gz muevelo a 4.gz es decir en cada iteracion pues movia el 1 hasta llegar al 4 donde ahi se cortaba, eso todos los dias, es decir 4 dias de backups, por la flojera y rapidez del hack (hace años de eso y se hizo antes de comer… ya casi con los cuates en la puerta preguntando «¿vas o no?») pues no le habia movido (mandaba un monton de mensajes, añadir un nuevo archivo a rotar, era un copy & paste + search & replace), total que despues de platicar con Gunnar, se me ocurrio que la idea que habia tenido hace mucho tiempo con logrotate era buena y que no recordaba por que mugre razon no habia funcionado…

Bien regrese a ver intento de hace años
[code=’Bash’]
vicm3@avalon:~$ more /etc/logrotate.d/backupdb
# Este es el gueno, notese que se rota todo lo que es *.gz en ese directorio
# se hace diario, guarda 5 dias, si no existe el log esta bien
# pero se queja si el log (backup), esta vacio y si no existe no lo crea.
/home2/Backup/DB/*.gz {
daily
rotate 5
missingok
notifempty
nocreate
}
# Esta version la intente alguna vez, no funcionaba, por dos razones
# 1) me la fusile de como lo hace apache por eso el sharedscipts
# 2) y de esta me cayo el 20 apenas, al decirle * rotaba 1.gz a 1.gz.1
# y en la siguiente iteracion a 1.gz.1.1 y luego a 1.gz.1.1.1 es decir nunca
# llegaba a 1.gz.2 para terminar en 1.gz.4 y luego desaparecer
# me llenaba de archivitos hasta llenar la particion… :P
#compress
#/home2/Backup/DB/* {
# rotate 4
# daily
# sharedscripts
#}
# Mismo caso fusilado no recuerdo si de webalizer o de syslog
# la solucion es que tengan algo en comun los archivos, mi primer script de
# backup daba nada mas el archivo, sin extension, despues daba .sql y finalmente
# opte por .gz pero no me habia fijado del detalle con el regexp :/
#/home2/Backup/DB/* {
# rotate 7
# missingok
# compress
# postrotate
# endscript
#}
[/code]

Total eso funciona por supuesto si tienen chance de moverle a root, pero se me hace un uso practico de un programa que ya viene con la maquina y si acepto que soy malo para escribirlo en perl (y en el caso de una maquina en especial, y en bash no me queda bonito, funciona pero no lo pienso pegar aqui :), ah y por cierto ya jubile el horripilante hack aquel…

Bueno para que no digan que ya ni escribo.

The sum of the intelligence of the world is constant. The population is, of course, growing.
Anon.

Esta entrada fue publicada en Sin categoría. Guarda el enlace permanente.

2 respuestas a Rotacion de respaldos

  1. Gunnar dijo:

    ¿Quién es el otro gwolf? ;-)

  2. vicm3 dijo:

    Jejejeje, a las 3:25am, no me percate que empece por gwolf y termine por escribir Gunnar ;D… lapsus mensus… :D y mas mensus, que, pense el otro dia, pero no lo escribi, pero y aunque yo no lo creia si existe por ahi otro gwolf, que por cierto se compro su Invision Board y no da con la configuracion, http://forums.invisionpower.com/index.php?showuser=680)

    Salu2

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.