¿Cuál es la mejor manera de realizar copias de seguridad diarias/semanales/mensuales?

¿Cuál es la mejor manera de realizar copias de seguridad diarias/semanales/mensuales?

Actualmente estoy ejecutando un script en Leopard cada pocos días para asegurarme de haber hecho una copia de seguridad de mis datos en un servidor remoto usando:

#!/bin/bash
rsync -avvz ~/Documents ~/Workspace -e ssh [email protected]:~/Backup/

Este método tiene limitaciones, es decir, no puedo ver archivos que se eliminaron hace algunas copias de seguridad. ¿Cuál es la mejor manera de automatizar este proceso?

Respuesta1

¿Puedes configurar un trabajo cron en Leopard?

Las opciones de ejemplo de rsync (-avvz) no eliminan archivos en el directorio 'remoto' que se han eliminado del directorio local desde una copia de seguridad anterior. Todavía deberían estar en el directorio remoto.

Pero su ejemplo es confuso: ¿está copiando archivos de ~/Documentos a ~/Workspace o a ~/Backup/ en myhost.com?

Esto puede ser una peculiaridad de Leopard, pero parece que simplemente estás copiando de ~/Documents a ~/Workspace, en cuyo caso el resto de la línea podría ignorarse (y no es necesario invocar ssh).

También debería considerar finalizar la especificación del directorio fuente con un /

Estoy de acuerdo con Peter en que las copias de seguridad rotativas son buenas, si se tiene espacio disponible en el disco.

Respuesta2

Estas buscandocopia de seguridad rdiff. Está muy, muy bien.

Respuesta3

El paquete rsnapshot me pareció muy bueno, está disponible en todas las distribuciones y lo acabo de instalar en mi Mac.

Es un contenedor para rsync que se encarga de las copias de seguridad incrementales, incluidas las horarias, diarias, semanales y mensuales.

Respuesta4

Ejecuto este trabajo cron todos los días a las 5:30 a. m.:

#! /bin/bash
echo -n "cleaning remote database...";
ssh wf ./bin/mysql-clean;
echo "Done";
echo -n "running remote backup script...";
ssh wf ./bin/mysql-backup;
echo "Done";
scp wf:~/mysql-`date +%Y-%m-%d`.sql.bz2 /storage/mysql/;

Luego, en mi servidor web, tengo un script llamado mysql-clean que aspira mi base de datos y elimina todos los restos. mysql-backup es básicamente mysqldump canalizado a través de bzip2, luego le asigna un nombre según la fecha. También tengo un script que toma el último archivo de respaldo, lo descomprime, borra la base de datos MySQL local y luego inserta todos los datos del archivo de respaldo.

información relacionada