Usando a conta de Backup da Dreamhost

Gosto muito de ser cliente da Dreamhost, mesmo que hajam pessoas que criticam a mesma aos quatro cantos do mundo. Toda empresa tem seus prós e contras e até o momento, eles me atenderam super bem.

Desde que vocẽ mantenha seus backups em dia, no seu computador ou em outro provedor remoto ( se estiver no Windows tem um processo mais fácil que este aqui, que é usar o MozyHome  ), não há problema algum. 

Como eu tive estes dias um pequeno problema do meu hd e não estava com os backups em dia, resolvi que era hora de colocar funcionando uma boa estrutura de backup para um caso de problema do modo como tive. 

Um HD externo é uma ótima opção, mas também, é, bom, sempre, ter uma outra opção rápida, inclusive caso o seu HD externo também apresentar um problema.
Como tenho um vício em manter as coisas on line, segue aí um exemplo de como utilizar o seu usuário de backup da Dreamhost para fins de backup rápido de coisas do HD.

Criei um pequeno shell script, que fica no cron do meu usuário rodando de 30 em 30 minutos. Levando-se em conta que alguns rsyncs podem levar mais que 30 minutos, fiz uma proteção no script que testa se há uma outra instância do script rodando e pára.
Isto é para evitar inconsistências no backup que está lá, na Dreamhost.

Bom, para começar, é só ir ao painel da Dreamhost e em Users, procurar pelo seu usuário de Backup. 

 

Menu de Users

 

Clique neste menu e anote o usuário e o host aonde você deve conectar. Estes dados vão ser necessáros para configuração do seu script, mais abaixo. 

Neste mesmo local, configure uma senha para acesso ao seu usuário de backup. 

Como pode ser visto ali, você pode usar sftp, scp e rsync para acesso ao usuário, Iremos usar o rsync para o script, pois ele é o melhor método para backup remoto. 

Após setar a senha, ainda na sua máquina local, execute o seguinte procedimento : 

$ ssh-keygen 

E gere sua chave para ser carregada no servidor remoto. Se quiser colocar uma senha na mesma, coloque. Se não, mantenha sem a senha. Eu pessoalmente, carreguei a chave sem senha mesmo. 

Após gerar a sua chave, na sua máquina local, faça os procedimentos. 

$ cd .ssh
$ sftp seuusuarionadreamhost@maquina.dreamhost.com

> put id_rsa.pub authorized_keys
> exit

Pronto, agora é só preparar o script na sua máquina: 

#!/bin/sh 
#set -x 
# estrutura para backup critico da minha maquina
# para minha estrutura de backup dentro da Dreamhost 
# nao eh o melhor, mas eh o que eu tenho 
# variaveis importantes para serm observadas 
{
BackupConfig=/localdaconfiguracao/backup.conf
Log=/lcoaldoslogs/Backup.log
Lock=/tmp/backup.lock
DHUser=
DHhost=
if [ -e $Lock ]; then 
echo "ERROR: jah existe arquivo de lock " >> $Log
exit
else 
echo "INFO: criando arquivo de lock ">> $Log
touch $Lock
fi
echo "<==========================================>" >> $Log
echo "<   Iniciando o Backup                     >" >> $Log
while read linha; do 
rsync -avz --delete $linha $DHUser@$DHhost:~/ >> $Log 
done < $BackupConfig	
echo "INFO: apagando arquivo de lock " >> $Log
rm -f $Lock
echo "<   Finalizado o Backup                    >" >> $Log
echo "<==========================================>" >> $Log
} &


 

A configuração consiste das linhas que estão em negrito. Vamos a elas :

BackupConfig=/localdaconfiguracao/backup.conf
Esta primeira linha é onde vocẽ vai colocara  configuração do seu script. Eu criei no meu computador um diretorio chamado /home/meusuario/bin/backup/ , onde todos os arquivos estão. Assim, ficaria do seguinte modo a linha BackupConfig=/home/ataliba/bin/backup/backup.conf

Log=/lcoaldoslogs/Backup.log
Onde fica o log do meu script. Seguinte o exemplo acima. Log=/home/ataliba/bin/backup/Backup.log

Lock=/tmp/backup.lock
Eu não mudaria, mas se quiser mudar, é o local onde fica o arquivo de lock, para proteger backups que durem mais de meia hora, ou mais que o tempo que vocẽ colocar nos eu cron

DHUser=
DHhost=
Dados que vocẽ pegou no seu painel da Dreamhost e usou para carregar a chave para o servidor. 

Com isto configurado e script carregado, é só colocar o mesmo no seu cron : 

*/30 * * * * /bin/sh /home/ataliba/bin/backup/backup.sh > /dev/nul

E pronto, agora é só ficar de olho nos logs para ver se não tem nada errado :-) 

Não é o script mais lindo do mundo, mas já quebra um bruta galho ... garanto :-)