Script de Backup Incremental (hecho por mi :D )

Iniciado por Bartz, Mayo 05, 2019, 10:54:34 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

"Hecho por mi" dice el titulo ? hm... en realidad solo estoy usando la libreria system para utilizar Rsync de una manera mas comoda :D

En mi caso, tengo un disco externo en el cual backupeo todas mis cosas.
Tengo la misma estructura de archivos en ambos discos, y lo que me es MUY comodo en este caso es que el script reconoce los archivos que fueron modificados y/o eliminados y efectua esos cambios en la carpeta de destino.

Es decir, tengo una copia exacta de los cambios que he hecho en mis archivos.
Lo que elimine me lo elimina del backup, lo que agregue lo agrega y lo que modifique lo modifica :D Genial !

Tambien esta la opcion para que no elimine los archivos que hemos quitado de la carpeta de origen y simplemente copiar los archivos nuevos que no existan en nuestro backup pero sin eliminar los que hemos eliminado.

Para poder utilizar este Script tenemos que instalar Rsync.
Código: php
$ sudo apt-get install rsync


Rsync:
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Y a continuacion dejo el archivo para descargar como tambien el codigo del mismo:

LINK (3kb):
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Codigo:
Código: python
from os import system
import subprocess
from time import sleep

print("\n\n\n\t██████╗ █████╗ ████████╗  ████╗   ████████╗     ████████╗██████╗ ██████╗██╗\n"+
"\t██╔══████╔══████╔════██║ ██╔██║   ████╔══██╗    ╚══██╔══██╔═══████╔═══████║     \n" +
"\t██████╔█████████║    █████╔╝██║   ████████╔╝       ██║  ██║   ████║   ████║     \n" +
"\t██╔══████╔══████║    ██╔═██╗██║   ████╔═══╝        ██║  ██║   ████║   ████║     \n" +
"\t██████╔██║  ██╚████████║  ██╚██████╔██║            ██║  ╚██████╔╚██████╔███████╗\n"+
"\t╚═════╝╚═╝  ╚═╝╚═════╚═╝  ╚═╝╚═════╝╚═╝            ╚═╝   ╚═════╝ ╚═════╝╚══════╝  By Afaik\n\n")

print("")

opt = "n"
while opt.lower() != 's':
    print("Introduzca la ruta a la carpeta que desea backupear")
    rutaOrigen = input()
    print(system("ls " + rutaOrigen))
    sleep(1)
    print("Es ese el contenido de tu carpeta ? s/n")
    opt = input().lower()

opt = "n"
while opt.lower() != 's':
    print("Introduzca la ruta a la carpeta de destino")
    rutaDestino = input()
    print(system("ls " + rutaDestino))
    sleep(1)
    print("Es ese el contenido de tu carpeta ? s/n")
    opt = input().lower()

print()
print("ORIGEN: " + rutaOrigen)
print("DESTINO: " + rutaDestino)
print()


opt1 = ""
while (opt1.lower() != 's') and (opt1.lower() != 'n'):
    print()
    print("OPCION: Backup Incremental.")
    print("Eliminar en DESTINO los archivos que no estan en ORIGEN ? s/n")
    opt1 = input().lower()

if opt1 == 's':
    delete = True
elif opt1 == 'n':
        delete = False

if delete == True:
    print()
    print("Como pueden eliminarse archivos, se mostraran los cambios para ver que estos sean correctos")

    print(system("rsync -azP --delete --dry-run " + rutaOrigen + " " + rutaDestino))

    print()
    print()
    opt3 = ""
    while (opt3.lower() != 's') and (opt3.lower() != 'n'):
        print("Son estos cambios correctos ?? s/n")
        opt3 = input().lower()

    if opt3 == 's':
        system("rsync -azP --delete " + rutaOrigen + " " + rutaDestino)

else:
    opt3 = ""
    while (opt3.lower() != 's') and (opt3.lower() != 'n'):
        print("Esta seguro de copiar los archivos ?? s/n   (se mostrara el progreso)")
        opt3 = input().lower()

    if opt3 == 's':
        system("rsync -azP " + rutaOrigen + " " + rutaDestino)



Para utilizar simplemente desde la consola escribimos
Código: php
$python3 backupScript.py


Espero que les sea de ayuda ! :D

Saludos




Con la fuerza del mar, con la paz del rio