En todas las versiones Gnu/Linux hay diferentes programas para realizar la copia de seguridad de turno de nuestros archivos, pero personalmente me gustan las cosas simples, lejos de interfaces gráficas (que no tienen nada de malo pero pierde toda la gracia). Por esta razón, buscando un poco encontré el comando rsync, que resulta ser un un formidable aliado de las copias de seguridad que muchas veces olvidamos hacer. Tiene suficientes opciones como para hacer una copia con todos los requisitos y garantías necesarias.
El siguiente script, realizado en python este nos hace la copias de seguridad de turno de manera sencilla. Veréis que es extremadamente simple e incluso para los que no tienen idea de este lenguaje, el añadir una línea para que el script haga la sincronización de un nuevo directorio resulta inmediato y muy sencillo.
En mi caso uso un disco duro externo que he llamado Sapo_HDD, en el de otro se puede renombrar en el script según necesidades. En el mismo script se explica cómo hacerlo mediante los comentarios añadidos.
Para automatizar la tarea se puede añadir una linea a crontab indicando el intérprete de python y la ruta donde queráis poner el script. A mi me ha resultado útil y muy entretenido, para el que guste aquí está el script.
Script en Python con rsync para realizar copias de seguridad
# -- coding: utf-8 --
import os
ruta_usuario=os.getcwd()
ruta_volumen="/media/Sapo_HDD" #Modificar según el nombre del disco externo donde dejar la copia
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("Proyectos_Android")
directorios_origen.append("Descargas")
#Añadir aquí otros directorios que se desean sincronizar
#o eliminar de las líneas anteriores los que no quieres sincronizar
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 sin errores"
except OSError:
print "Ha ocurrido un error ¿has enchufado el disco externo?"
except:
print "Ha ocurrido un error. Revisa todo lo revisable!!"
El script es sencillo de entender y de utilizar, y hace todo lo necesario para tener siempre a punto nuestras copias de seguridad de los directorios que necesitemos tener siempre a buen recaudo.