Desde hace tiempo estamos usando este programa para gestionar las copias de seguridad, sobre todo en maquinas remotas o en aquellas que sólo tenemos acceso por terminal: duplicity.
Sobre programas de copias de seguridad hay multitud de entradas en Internet tantas como programas y de muy diversas características, por ejemplo en Wikipedia. Pero en este artículo queremos destacar las que para nosotros son más importantes:
1. Copias remotas mediante SCP/SFTP. Hoy en día y con la gran cantidad de sistemas distribuidos que se tienen esto es un requisito indispensable, además en la web oficial dicen que soporta en teoría todos los protocolos de conexión con sistemas de ficheros:In theory many protocols for connecting to a file server could be supported; so far ssh/scp, local file access, rsync, ftp, HSI, WebDAV, Tahoe-LAFS, and Amazon S3 have been written. Currently duplicity supports deleted files, full unix permissions, directories, and symbolic links, fifos, and device files, but not hard links.
2. La facilidad de uso, con varias opciones podemos controlar fácilmente un conjunto complejo de posibilidades para una gestión eficiente de nuestras copias de seguridad.
Ej: Un comando para guardar una copia de seguridad de /home/me en el directorio remoto /usr/backup en el host other.hostduplicity /home/me scp://uname@other.host//usr/backup
El inverso para restaurar una copia al directorio restoredir:duplicity scp://uid@other.host//usr/backup restoreddir
3. Posibilidad de encriptar y firmar con el mismo programa los ficheros. Esto le da un valor añadido al poderse usar el mismo para la encriptación y la firma digital usando GnuGP.
En definitiva es un programa que debe usarse y que nos sacara de más de un apuro.
Para los que estáis buscando un script sencillo para gestionar copias de seguridad os dejo este bajo licencia GPL para vuestro uso, aunque podéis encontrar muchos más por Internet: Ubuntu.com, virtualserverlabs.com, ..

!/bin/bash

# —————————————————————————————–
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
# —————————————————————————————–
# P.G.G. – enreda.coop – 2010
# Script de backup, periodico. Guarda backup diario, mensual y anual.
# Diario durante 30 días. Mensual durante 1 año. Anual duante 2 años.
#
date=date +%d
year=date +%d-%m
#Variables
destino=/usr/backup
files=/home/me
#Podeis usar la password o una ssh key.
export FTPPASSWORD=password
#Escribimos en el log
echo date +%H:%M-%d/%m/%Y Comienza el backup >> /var/log/backup.log
#Si estamos en el dia 1 del mes
if [ $date = 01 ] then
#Copia completa mensual en la carpeta /mes
duplicity full $files –ssh-askpass –no-encryption scp://uname@other.host//$destino/mes/
#Borramos las diaras despues de crear la copia mensual y borramos las copias mensuales que tienen más de 1 año
duplicity remove-older-than 1M –force –ssh-askpass scp://uname@other.host//$destino/dia/
duplicity remove-older-than 1Y –force –ssh-askpass scp://uname@other.host//$destino/mes/
#Escribimos en el log
echo date +%H:%M-%d/%m/%YCopia mensual realizada. Copias diarias eliminadas. Copias mensuales anteriores a un año eliminadas >> /var/log/backup.log
else
#Si es cualquier otro día se crea la copia de seguridad diaria
duplicity $files –ssh-askpass –no-encryption scp://uname@other.host//$destino/dia/
#Escribimos en el log
echo date +%H:%M-%d/%m/%Y Copia diaria realizada. >> /var/log/backup.log
fi
#Escribimos en el log
echo date +%H:%M-%d/%m/%Y Fin backup remoto >> /var/log/backup.log
#Si es el dia 1 de Enero, se crea una copia anual y se borra si existen las copias anteriores a 2 años
if [ $year = 01-01 ] then
#Escribimos en el log
echo date +%H:%M-%d/%m/%YComienza el backup anual 1 de Enero >> /var/log/backup.log
duplicity full $files –ssh-askpass –no-encryption scp://uname@other.host//$destino/year/
duplicity remove-older-than 2Y –force –ssh-askpass scp://uname@other.host//$destino/mes/
#Escribimos en el log
echo date +%H:%M-%d/%m/%YFin backup anual >> /var/log/backup.log
fi
unset FTP
PASSWORD
exit 0