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:
- 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.
- 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 restore_dir:duplicity scp://uid@other.host//usr/backup restored_dir - 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 FTP_PASSWORD=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/%Y
Copia 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/%Y
Comienza 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/%Y
Fin backup anual >> /var/log/backup.log
fi
unset FTP_PASSWORD
exit 0