Skrypt w Pythonie do lokalnych kopii zapasowych z rsync

W Gnu / Linux są różne programy do wykonywania kopii zapasowych, ale osobiście lubię proste rzeczy, z dala od interfejsów graficznych (które oczywiście nie mają nic złego, ale jeśli mogę ich uniknąć, unikam).
W poleceniu rsync jest potężny sojusznik kopii zapasowych, o których często zapominamy. Ma wystarczająco dużo opcji, aby wykonać kopię ze wszystkimi niezbędnymi wymaganiami. komputer-767784_640

Poniższy skrypt w języku Python tworzy w tym celu kopie zapasowe. Zobaczysz, że jest to niezwykle proste i nawet dla tych, którzy absolutnie nie mają pojęcia o tym języku, dodanie linii skryptu do synchronizacji nowego katalogu jest natychmiastowe.
W moim komputerze używam zewnętrznego dysku twardego, który nazwałem IOmega_HDD, w twoim przypadku możesz zmienić jego nazwę w skrypcie zgodnie z twoim przypadkiem.
Inną rzeczą jest dodanie lub usunięcie katalogów z kopii. W tym samym skrypcie, co w wierszu komentarza, wyjaśniono, jak to zrobić.
Aby zautomatyzować zadanie, możesz dodać linię do crontab zawierającą interpreter języka Python i ścieżkę, w której chcesz umieścić skrypt. Mam nadzieję, że ci się przyda.

ostrzeżenie: edytor wordpress nie zezwala na odstępy na początku wiersza, przez co niezbędne wcięcia w skrypcie zostały utracone, więc puste spacje zastąpiłem punktami (.), które należy usunąć za pomocą edytora i zastąpić spacjami .

-------------------------------
# -*- coding: utf-8 -*-
import os
ruta_usuario=os.getcwd()
ruta_volumen="/media/Iomega_HDD" #Modificar según nombre de disco externo
directorio_destino=ruta_volumen + "/" + "RsyncBackup"
try:
....if os.path.exists(directorio_destino):
........pass
....else:
........os.mkdir(directorio_destino,0777)
....directorios_origen=[] ....rutas_directorios_origen=[] ....#Se añaden los directorios para sincronizar
....directorios_origen.append("Documentos")
....directorios_origen.append("Imágenes")
....directorios_origen.append("Descargas")
....#Añadir aquí otros directorios que se deseen sincronizar
....#o eliminar de las líneas anteriores los que no se deseen
....for rutas in directorios_origen:
....rutas_directorios_origen.append(ruta_usuario + "/" + rutas)
....for rutas in rutas_directorios_origen:
....print "Sincronizando " + rutas + " con " + directorio_destino
....os.system("rsync -ahv --progress" + " " + rutas + " " + directorio_destino)
....print "Proceso terminado"
except OSError:
print "Ha ocurrido un error ¿está el disco externo listo?"
except:
print "Ha ocurrido un error"

---------------------------