Script Python pour les sauvegardes locales avec rsync

Dans Gnu / Linux il existe différents programmes pour effectuer la sauvegarde mais personnellement j'aime les choses simples, loin des interfaces graphiques (qui n'ont rien à redire, bien sûr, mais si je peux éviter de l'utiliser, j'évite).
Dans la commande rsync, il y a un formidable allié de sauvegardes que l'on oublie souvent de faire. Il a suffisamment d'options pour faire une copie avec toutes les exigences nécessaires. ordinateur-767784_640

Le script python suivant effectue des copies de sauvegarde à cet effet. Vous verrez que c'est extrêmement simple et même pour ceux qui n'ont absolument aucune idée de ce langage, l'ajout d'une ligne pour que le script synchronise un nouveau répertoire est immédiat.
Dans ma machine, j'utilise un disque dur externe que j'ai appelé IOmega_HDD, dans votre cas, vous pouvez le renommer dans le script en fonction de votre cas.
Une autre chose est d'ajouter ou de supprimer des répertoires de la copie. Dans le même script que la ligne de commentaire, il est expliqué comment le faire.
Pour automatiser la tâche, vous pouvez ajouter une ligne à crontab contenant l'interpréteur python et le chemin où vous souhaitez placer le script. J'espère que cela vous sera utile.

avertissement: l'éditeur wordpress n'autorise pas d'espacement en début de ligne, donc l'indentation nécessaire a été perdue dans le script, j'ai donc remplacé les espaces vides par des points (.) que vous devez éliminer avec un éditeur et remplacer par des espaces.

-------------------------------
# -*- 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"

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