Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Script Para Respaldar Las Aplicaciones
Autor Mensaje
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Script Para Respaldar Las Aplicaciones 
 
Muy bueno.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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 usuarioEnviar mensaje privado 
Volver arribaPágina inferior
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


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron