Os backups são uma parte importante da administração de qualquer servidor. Por mais confiável que seja a máquina, desastres acontecem, sem falar na possibilidade de erro humano. Sem backups regulares, é apenas questão de
tempo até que você tenha problemas e perca dados importantes, o que muitas vezes pode custar seu emprego, ou pior.
Diferente de um desktop, onde você pode simplesmente fazer uma imagem do HD usando o partimage ou outro programa similar, em uma servidor os backups precisam, quase sempre, serem feitos com o servidor em operação, sem
atrapalharem o acesso dos usuários. O nível de dificuldade também é um pouco maior, já que além de arquivos e pastas, é necessário salvar também arquivos de configuração, bases de dados do MySQL e assim por diante.
Em resumo, as principais pastas com as quais você precisa se preocupar ao fazer backup do servidor são:
/var/www: Em um servidor web, a pasta com as páginas é sempre o diretório mais importante, já que é nele que ficarão a maior parte dos arquivos dos usuários.
/var/lib/mysql: Este é o diretório padrão das bases de dados do MySQL, que em muitos casos são tão ou mais importantes que as pastas dos sites propriamente ditos. Embora seja associado ao uso em servidores web, o MySQL pode
ser usado para os mais diversos tipos de tarefas.
/home: Se você configurou os virtual hosts do Apache para utilizarem pastas dentro dos diretórios home dos usuários, a pasta home assume o posto de diretório essencial, no lugar da pasta /var/www. O home também é essencial
caso seja usado para armazenar e-mails ou em casos de servidores de arquivos ou servidores de acesso remoto (como no caso do LTSP).
/etc: É importante que você faça também backup das configurações do servidor, concentradas na pasta /etc, caso contrário você vai passar maus bocados tentando se lembrar das configurações, contas de usuários e outras
informações ao reconfigurar o servidor após algum desastre. 🙂
/var/log: Os logs do sistema também são importantes. Em muitos casos existem normas administrativas ou até mesmo normas legais que tornam obrigatório manter os logs de acesso por longos períodos, daí a necessidade de
incluí-los no backup.
Além dos diretórios de dados do sistema, é importante que você tome nota de todas as partições montadas em diretórios fora das pastas principais do sistema que sejam usadas para armazenar arquivos, além de outras pastas que
você utilize para guardar dados ou configurações.
Um exemplo de script de backup simples para fazer um backup completo dos arquivos da pasta “/var/www, contendo os arquivos de todos os sites hospedados no servidor, e também da base de dados do MySQL, incluindo as datas em que os backups foram
realizados nos nomes dos arquivos seria:
#!/bin/sh
# Acessa a pasta onde os backups serão salvos
cd /var/backup
# Cria uma variável contendo a data atual
DATA=`date +%Y-%m-%d-%H.%M`
# Faz backup da pasta /var/www
tar -zcvf www-$DATA.tar.gz /var/www
# Para o MySQL e faz backup das bases de dados
/etc/init.d/mysql stop
tar -zcvf mysql-$DATA.tar.gz /var/lib/mysql
/etc/init.d/mysql start
Ao executar o script, você teria dois arquivos, como em “www-2008-06-27-07.21.tar.gz” e “mysql-2008-06-27-07.21.tar.gz”. Veja que a data incluída nos nomes dos arquivos propositalmente contém (além da data) também a hora e
os minutos em que foram gerados, de forma que você saiba exatamente quando os arquivos foram gerados e obtenha sempre arquivos de nomes diferentes, mesmo que o script seja executado várias vezes em sequência.
Para automatizar a execução do script, você pode adicionar uma entrada no arquivo “/etc/crontab”, assim como fizemos nos exemplos anteriores:
59 4 * * * root /usr/local/bin/script-backup
Esta entrada faria com que o script fosse executado todos os dias às 4:59 da manhã, sempre gerando dois novos arquivos com a data de quando foram executados. Com isso, ficaria faltando apenas copiar ou mover os arquivos
regularmente para outro servidor, onde eles forem ficar arquivados.
Esta postagem foi modificada pela última vez em 21/03/2011 19:15