Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Script Para Respaldar Las Aplicaciones

Script Para Respaldar Las Aplicaciones
Artículo
Responder citando    Descargar mensaje  
Mensaje Script Para Respaldar Las Aplicaciones 
 
Hola a todos.
Debido al post de Shordi sobre un script bash que el hizo para hacer backups de sus programas gambas.
Me quedo picando la curiosidad por aquello de que cada vez que se hacia el backup se copiaban todos los proyectos, aunque no tengan cambios. Esto presenta el problrma de aumentar el uso de espacio de disco, creo, innecesariamente.
Asi que me puse a jugar unas horas con bash ya que hacia tiempo que no tocaba ese lenguaje.

Bueno he logrado hacer lo que me propuse, el script hace lo siguiente:
Verifica cual es el ultimo backup.
Luego verifica la fecha de cada proyecto y si es posterior al bacup entonces lo pone en en el .tar.gz caso contrario no lo pone.

El resultado es una serie de archivos .tar.gz donde el primero que se realice contendra todos los proyectos y luego cada nuevo .tar.gz tendra solo lo que hayamos cambiado luego del ultimo backup.

espero que les sea de utilidad.
#!/bin/bash
prdir="/directoriodetrabajo/"
bkdir="/directorioderespaldo/"
# Busqueda del ultimo backup
lastbk=`date -d"1970-01-01 00:00:00" +%Y%m%d%H%M%S`
for bkfile in $(ls -f ${bkdir}/*)
do
tdate1=`stat -c %y ${bkfile}`
tdate2=`date -d"${tdate1}" +%Y%m%d%H%M%S`
echo "Date 2 "$tdate2
        if [ $tdate2 -gt $lastbk ]; then
        echo $tdate2
        lastbk=$tdate2
        fi
done
echo "Fecha del ultimo backup "$lastbk
bdir=$(basename "$sdir")
mdate=`date +%Y%m%d%H%M%S`
mzip="$mdate.tar.gz"
mtar="$mdate.tar"
# Creación de un tar vacio
tar cfT $bkdir$mtar /dev/null
cd $prdir
for sdir in $(ls -d ${prdir}*/)
do
# Busqueda de la fecha mas reciende dentro del proyecto
        process="NEUTRO"
        bdir=$(basename "$sdir")
        flast1=`find ${sdir} -type f -printf '%TY-%Tm-%Td %TH:%TM:%TS %p\n'| sort -n | tail -1 | cut -f1 -d"."`
        echo "1) La fecha mas reciente en "$bdir" es "$flast1
        flast2=`date -d "${flast1}" +%Y%m%d%H%M%S`
        echo "2) La fecha mas reciente en "$bdir" es "$flast2
                if [ $flast2 -gt $lastbk ]; then
                process="RESPALDAR"
                else
                process="OMITIR"
                fi
         echo "3) La acción para el proyecto "$bdir" es " $process
                if [ "$process" = "RESPALDAR" ]; then
                bdir=$(basename "$sdir")
                echo $bdir" tiene cambios"
                echo "4) Empaquetando "$bdir  
                tar -r -f $bkdir$mtar $bdir/
                else
                echo "4) Omitiendo "$bdir  
                fi
done
gzip $bkdir$mtar
/usr/bin/gambas3 &
exit
 


Saludos.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Lunes, 08 May 2017, 21:35 ]
 


Script Para Respaldar Las Aplicaciones
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Script Para Respaldar Las Aplicaciones 
 
Muy bueno.



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Lunes, 08 May 2017, 21:42 ]
Responder citando    Descargar mensaje  
Mensaje Re: Script Para Respaldar Las Aplicaciones 
 
Una sugerencia: Antes de hacer el backup de cada día, haz una lista de las carpetas incluídas y grábala en un fichero.txt, o como lo prefieras, con el mismo nombre del backup. Tar tiene una opción para listar su contenido, si no recuerdo mal...

Es que si tienes que recuperar la última copia de un proyecto, nunca sabes en qué tar.gz estará y te tocará ir mirando de uno en uno... lo que puede ser arduo si hace mucho tiempo desde que no se modificaba ese proyecto.

Saludos



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Martes, 09 May 2017, 08:00 ]
Responder citando    Descargar mensaje  
Mensaje Re: Script Para Respaldar Las Aplicaciones 
 
shordi escribió:  
...Es que si tienes que recuperar la última copia de un proyecto, nunca sabes en qué tar.gz estará y te tocará ir mirando de uno en uno... lo que puede ser arduo si hace mucho tiempo desde que no se modificaba ese proyecto...

Si, es verdad.
A ver si comprendo lo que propones.
Para que sea mas fácil encontrar un backup hay que crear un .txt donde se registre cada proyecto y en que tar.gz esta localizado el último backup de este.
¿Algo así?
konvertilo:20170510112013.tar.gz
tradukisto:20170509123345.tar.gz
...

Saludos.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Miercoles, 10 May 2017, 23:08 ]
Responder citando    Descargar mensaje  
Mensaje Re: Script Para Respaldar Las Aplicaciones 
 
Exacto. Cómo hacerlo sólo con un shell script... Habría que mirarlo.



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Miercoles, 10 May 2017, 23:59 ]
Responder citando    Descargar mensaje  
Mensaje Re: Script Para Respaldar Las Aplicaciones 
 
shordi escribió:  
Exacto. Cómo hacerlo sólo con un shell script... Habría que mirarlo.

Sabes como se hacen matrices o colecciones en bash?

Saludos.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Jueves, 11 May 2017, 00:06 ]
Responder citando    Descargar mensaje  
Mensaje Re: Script Para Respaldar Las Aplicaciones 
 
Citar:

Sabes como se hacen matrices o colecciones en bash?

Pues ni idea... para esos tejemanejes siempre recurro a gambas...

Se me ocurre que una línea de trabajo sería generar un listado de lo que hay en el archivo comprimido y comparar ese resultado con el del fichero de texto índice con alguno de los comandos de comparación de archivos, diff o alguno así...

O, hacer un programita de gambas que solucione el tema ¿por qué no?

Saludos.



 
shordi - Ver perfil del usuario Enviar mensaje privado  
shordi [ Jueves, 11 May 2017, 07:39 ]
Responder citando    Descargar mensaje  
Mensaje Re: Script Para Respaldar Las Aplicaciones 
 
[quote user="shordi" post="38088"]
Citar:
...O, hacer un programita de gambas que solucione el tema ¿por qué no?

Bueno, la verdad es que me intereso el tema así que ayer por la noche comencé un nuevo proyecto en gambas para gestionar los backups y hacer restauraciones y que trabaje en conjunto con el script.
Ya comentare en cuanto tenga algo funcional.

Saludos.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Jueves, 11 May 2017, 11:42 ]
Responder citando    Descargar mensaje  
Mensaje Re: Script Para Respaldar Las Aplicaciones 
 
¿Y por qué no usar rsync?

Con rsync puedes elegir hacer copias completas, incrementales o sólo copiar los ficheros que hayan cambiado...  Hay miles de ejemplos en la web de formas de usarlo.

Saludos



 
jguardon - Ver perfil del usuario Enviar mensaje privado  
jguardon [ Jueves, 11 May 2017, 22:05 ]
Responder citando    Descargar mensaje  
Mensaje Re: Script Para Respaldar Las Aplicaciones 
 
jguardon escribió:  
¿Y por qué no usar rsync?
Con rsync puedes elegir hacer copias completas, incrementales o sólo copiar los ficheros que hayan cambiado...  Hay miles de ejemplos en la web de formas de usarlo.
Saludos

Le eche on vistazo a algunos ejemplos de rsync eb el sitio este:
https://www.tecmint.com/rsync-local...ation-commands/
Esta interesante, creo que es mucho mas eficiente que todo los de los .tar.gz pero no me queda en claro si puedo tener la opción de guardar versiones a lo largo del tiempo o siempre guarda lo ultimo, lo cual seria un poco complicado en caso de cometer un erro en el original y que la "copia" finalmente tenga el error también (en caso de usar cron)

Bueno tendré que hacer pruebas para familiarizarme.

Saludos.



 
tincho - Ver perfil del usuario Enviar mensaje privado  
tincho [ Viernes, 12 May 2017, 01:38 ]
Mostrar mensajes anteriores:    
 
Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 



 

cron