В Gnu / Linux есть разные программы для выполнения резервного копирования, но лично мне нравятся простые вещи, далекие от графических интерфейсов (в которых, конечно, нет ничего плохого, но если я могу избежать его использования, я избегаю).
В команде rsync есть надежный союзник резервного копирования, которое мы часто забываем делать. В нем достаточно опций, чтобы сделать копию со всеми необходимыми требованиями.
Следующий скрипт python делает для этой цели резервные копии. Вы увидите, что это чрезвычайно просто, и даже для тех, кто абсолютно не имеет представления об этом языке, добавление строки для сценария для синхронизации нового каталога выполняется немедленно.
На своей машине я использую внешний жесткий диск, который я назвал IOmega_HDD, в вашем случае вы можете переименовать его в скрипте в соответствии с вашим случаем.
Другое дело - добавить или удалить каталоги из копии. В том же скрипте, что и в строке комментария, объясняется, как это сделать.
Чтобы автоматизировать задачу, вы можете добавить в crontab строку, содержащую интерпретатор python и путь, по которому вы хотите поместить скрипт. Надеюсь, это будет вам полезно.
предупреждение: редактор wordpress не допускает пробелов в начале строки, поэтому необходимый отступ в скрипте был потерян, поэтому я заменил пробелы точками (.), которые вы должны удалить с помощью редактора и заменить пробелами .
-------------------------------
# -*- 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"
---------------------------