Backup Remoto
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.



