Segue o script que realiza o backup remoto e deve ficar na sua estação:
#!/bin/bash
# Script para backup automático dos arquivos de configuração dos clientes
echo "Copia de segurança dos clientes no dia `date +%F`" > backup-`date +%F`.log
if [ $# -lt 1 ];
then
if [ ! -d "`pwd`/clientes" ]
then
mkdir `pwd`/clientes
fi
for cliente in `cat clientes.txt | grep -v "#"`;
do
if [ ! -d "`pwd`/$cliente" ]
then
mkdir `pwd`/$cliente
fi
echo "`date +%r` Iniciando copia das configurações de >>>>> $cliente <<<<<"
echo "`date +%r` Iniciando copia das configurações de $cliente" >> backup-`date +%F`.log
scp user@$cliente:/home/user/backup.tar.gz `pwd`/$cliente/backup.tar.gz
if [ $? == 0 ]
then
echo "Copia de $cliente bem sucedida" >> backup-`date +%F`.log
else
echo "Cópia de $cliente falhou!" >> backup-`date +%F`.log
fi
done
else
for cliente;
do
if [ ! -d "`pwd`/$cliente" ]
then
mkdir `pwd`/$cliente
fi
echo "`date +%r` Iniciando copia das configurações de >>>>> $cliente <<<<<"
echo "`date +%r` Iniciando copia das configurações de $cliente" >> backup-`date +%F`.log
scp user@$cliente:/home/user/backup.tar.gz `pwd`/$cliente/backup.tar.gz
if [ $? == 0 ]
then
echo "Copia de $cliente bem sucedida" >> backup-`date +%F`.log
else
echo "Cópia de $cliente falhou!" >> backup-`date +%F`.log
fi
done
fi
Este script é bem simples e tem dois blocos, o primeiro é executado se ele for chamado no shell sem parâmetros nenhum, nesse caso ele olha no arquivo clientes.txt a lista de servidores que você possui e conecta em cada um deles, agora se você entrar com algum parâmetro no shell ele vai tentar conectar no lugar que você digitou... (sendo válido ou não)
Obs:
1. Os arquivos serão copiados para uma sub pasta clientes no diretório aonde você executar o script.
2. No seu arquivo clientes.txt se você não quiser fazer o backup de algum cliente basta comentar com um "#" que o script pula...
3. O script criará automaticamente diretórios aonde serão guardados os arquivos backup.tar.gz de cada cliente, então por exemplo se você tiver 2 clientes um sendo gw.cliente1.com.br e o outro 222.333.444.555 serão criados 2 diretórios com esses nomes e dentro deles estará um arquivo backup.tar.gz respectivo a cada cliente.
Conclusão
Esta é uma solução extremamente simples e rápida que me atende muito bem, atualmente faço mais de 40 backups dessa forma e em caso de perda de um servidor isso acelera muito a recuperação do sistema.
[2] Comentário enviado por removido em 17/02/2008 - 13:32h
ola vc pode me dar mais detalhes de como faço esse backup, é que sou iniciante. Detalhes como: eu quero copiar os diretorios que estão no /dados; /publico; /sistema; como fazer?
[7] Comentário enviado por tiago_s em 10/11/2008 - 18:17h
Depois de criar as chaves publibas eu digito o comand #ssh-add e ele me retorna o seguinte erro: Could not open a connection to your authentication agent.
[8] Comentário enviado por eilton em 07/05/2013 - 15:26h
Fernando boa tarde,
eu tenho um servidor na empresa que trabalho, tenho o Ubuntu 12 instalado nos terminais, e o Debian instalado no servidor, já criei os usuários e suas pastas, gostaria se possivel, como devo utilizar o script que vc criou, para que eu possa fazer os backups neste servidor, sou iniciante e gostaria de um passo-a-passo para que eu não me perca.