Backup Remoto | DeServ – Info
Lomadee, uma nova esp閏ie na web. A maior plataforma de afiliados da Am閞ica Latina.

Backup Remoto

By Fl谩vio Silva

Um tutorial que explica como fazer um backup simples de arquivos no sistema (backups completos ou diferenciais) e armazenar em um servidor remoto via FTP.

Nem sempre as pessoas pensam em backup, s贸 quando acontece alguma coisa com seu sistema. Um backup sempre 茅 bom, mesmo que for bem simples. Vou apresentar atrav茅s deste manual algumas 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 centralizer os backups em uma m谩quina, para depois armazenar ou em uma fita dat, ou em cd-rom, ou seja l谩 o que for.

Para fazer os backups, utilizaremos o cl谩ssico comando 鈥渢ar鈥, 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 鈥渕aquina-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 脿 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 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 鈥渮鈥 e n茫o a 鈥渏鈥. 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 鈥渢este鈥 e modificando o arquivo 鈥渃rontab鈥. 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 鈥渕aquina-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 鈥渄ate鈥, 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 certa senha para acessar este ftp. Aqui no tutorial vamos usar como usu谩rio: 鈥渂ackup鈥 e como senha: 鈥渟egredo鈥. Utilize o seguinte script para automatizar o processo:

#!/bin/bash
#
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.

Tags: , , , ,

Deixe uma Resposta