Qual é a melhor maneira de executar backups diários / semanais / mensais?

1

Atualmente, estou executando um script no leopard a cada alguns dias para ter certeza de que fiz backup dos meus dados em um servidor remoto usando:

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

Existem limitações para este método, por exemplo, não consigo ver os arquivos que foram excluídos há alguns backups. Qual é a melhor maneira de automatizar esse processo?

    
por Penang 29.08.2009 / 07:46

5 respostas

1

Você pode configurar um cron job no leopard?

As opções de rsync de exemplo (-avvz) não excluem arquivos no diretório 'remote' que foram removidos do diretório local desde um backup anterior. Eles ainda devem estar no diretório remoto.

Mas o seu exemplo é confuso: você está copiando arquivos de ~ / Documents para ~ / Workspace ou para ~ / Backup / em myhost.com

Isso pode ser uma peculiaridade do leopard, mas parece que você está copiando de ~ / Documents para ~ / Workspace, caso em que o resto da linha pode ser ignorado (e você não precisa invocar o ssh)

Você também deve considerar terminar a especificação do diretório de origem com um /

Eu concordaria com Peter que os backups rotativos são bons - se você tiver o espaço em disco disponível.

    
por 29.08.2009 / 08:12
3

Você está procurando pelo rdiff-backup . É muito, muito bom.

    
por 29.08.2009 / 08:54
3

Eu achei o pacote rsnapshot muito bom, disponível em todas as distribuições e agora o instalei no meu mac.

É um wrapper para o rsync que cuida de backups incrementais, incluindo por hora, diariamente, semanalmente e mensalmente.

    
por 29.08.2009 / 10:07
1

Acho a máquina do tempo muito eficaz, combinada com a rotação dos backups fora do local. Isso não é "usando um servidor remoto", mas pensei que deveria apenas apontar.

    
por 29.08.2009 / 08:02
0

Eu executo esse cron job todos os dias às 5h30:

#! /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/;

Então, no meu webhost, eu tenho um script chamado mysql-clean, que limpa meu banco de dados e remove todos os arquivos. O mysql-backup é basicamente apenas o mysqldump canalizado através do bzip2, e então o nomeia de acordo com a data. Eu também tenho um script que leva o arquivo de backup mais recente, descompacta-o, limpa o banco de dados mysql local e insere todos os dados do arquivo de backup.

    
por 29.08.2009 / 09:11