BackupRemoto
Como fazer um Backup Remoto
Conteúdo |
Nem sempre as pessoas pensam em backup, só quando acontece algum sério desastre com seu sistema. Um backup sempre é bom, mesmo que for bem simples. Vou apresentar através deste tutorial algumas das formas de se fazer backup de arquivos do sistema Linux, opcionalmente armazenando estas cópias em um servidor remoto via FTP. Com isso os administradores de redes podem centralizar os backups em uma máquina, para depois armazenar ou em uma fita dat, ou em cd-rom, ou num outro tipo de mídia.
Para fazer os backups, utilizaremos o clássico comando "tar", que serve justamente para isso: armazenar arquivos em um arquivo. Vamos primeiro criar um exemplo de arquivo de backup:
tar -cf maquina-backup-full-20030212.tar /etc /var/named /var/log bzip2 maquina-backup-full-20030212.tar
O que fiz foi armazenar os arquivos dos diretórios "/etc", "/var/named" e "/var/log" no arquivo maquina-backup-20030212.tar, e depois compactá-lo no formato bzip2 (uma compactação melhor, mas que requer mais processamento), gerando então o arquivo "maquina-backup-20030212.tar.bz2". Este mesmo comando pode ser feito em uma linha só:
tar -jcf maquina-backup-full-20030212.tar.bz2 /etc /var/named /var/log
Com este arquivo, teremos um backup completo dos três diretórios especificados. Vamos a mais um exemplo:
tar -zcf maquina-backup-full-20030212.tar.gz /etc /var/named /var/log tar -zcf maquina-home-full-20030212.tar.gz /home
Aqui eu criei dois arquivos:Um arquivo contém o backup que criamos anteriormente, e o outro arquivo terá o backup do diretório "/home", ou seja, o diretório dos usuários do sistema. A diferença aqui é que eu usei a opção "z" e não a "j". Isso quer dizer que o tar vai usar o programa gzip ao invés do bzip2.
Agora vamos supor que eu alterei o conteúdo do diretório "/etc", adicionando um arquivo chamado "teste" e modificando o arquivo "crontab". Para não ter que fazer um backup total novamente, eu posso incrementar este backup somente com as modificações feitas. Para isso eu utilizo o seguinte comando:
find /etc /var/named /var/log -mtime -1 -type f -print | \ tar zcvf maquina-backup-incremental-20030212.tar.gz -T -
Aqui o Linux vai procurar por arquivos modificados numa faixa de 1 dia (usado para backups incrementais diários) e armazená-los no arquivo "maquina-backup-incremental-20030212.tar.gz". Vejamos agora um backup feito com os arquivos modificados numa faixa de uma semana:
find /etc /var/named /var/log -mtime -7 -type f -print | \ tar zcvf maquina-backup-incremental-20030212.tar.gz -T -
Agora se você quiser automatizar, e poupar trabalho, use para a nomeação do arquivo o comando "date", gerando assim a data no arquivo. Veja o exemplo dessa compactação:
# tar zcf backup-full-`date +%Y%m%d`.tar.gz /etc # ls backup-full-20030212.tar.gz
Agora que você já aprendeu a fazer os backups, vamos armazená-lo remotamente. Eu assumo que você já tenha configurado um servidor FTP em outra máquina, se você ainda não fez isso, faça. Depois adicione um usuário com uma senha para acessar este ftp. Aqui no tutorial vamos usar como usuário: "backup" e como senha: "segredo", mas procure utilizar senhas menos óbvias. Utilize o seguinte script para automatizar o processo:
# DATA=`date +%Y_%m_%d` # Dados do arquivo de backup MAQUINA="sakura" ARQUIVO="backup-full-$MAQUINA-$DATA.tar.gz" DIRETORIOS="/etc /var/log" # Dados do servidor FTP HOST_FTP="192.168.0.1" USUARIO_FTP="backup" SENHA_FTP="segredo" # A partir daqui não precisa mais editar. # Cria o arquivo .tar.gz no /tmp (Temporário) cd /tmp tar zcf /tmp/$ARQUIVO $DIRETORIOS # Acessa o FTP e coloca os arquivos ftp -in <<EOF open $HOST_FTP user $USUARIO_FTP $SENHA_FTP bin lcd /tmp dele $ARQUIVO put $ARQUIVO bye EOF # Remove os arquivos temporarios rm -rf /tmp/$ARQUIVO
Pronto! Lembre-se de proteger este arquivo aos olhos alheios, porque a senha do usuário do FTP está visível. Este pequeno script shell cria um backup dos diretórios "/etc" e "/var/log", conecta ao servidor FTP e envia o arquivo. Você só precisará alterar as variáveis do começo do arquivo para as suas necessidades.
Com isso você terá o backup remoto que precisar. Modificando o script você pode criar também backups incrementais, e junto com o crontab, pode programar para as máquinas ficarem fazendo backups diários, semanais, mensais, ou como você quiser. Lembre-se sempre que os backups uma vez na máquina remota, devem ser colocados por segurança em uma mídia como fita DAT ou CD-ROM. Cabe à você decidir
Bom proveito! Depois criarei mais dicas sobre o assunto.
Bibliografia
Autor: |
Fonte: |
Hugo Cisneiros |
Wikifier
BackupRemoto (last edited 2011-09-19 23:22:55 by localhost)