segunda-feira, 19 de abril de 2010

Instalar e configurar BackupPc

O objetivo dessa dica é ajudar a instalar e configurar o BackupPC no Fedora 12 e fazer backup de um cliente linux (no meu caso FC 12 também) com método Rsyncd.

Vamos começar pelo mais fácil que é configurar o cliente:

P/ instalar o rsync (normalmente já vem instalado)

yum install rsync.x86_64

p/ rsync funcionar tem que instalar o pacote xinetd

yum install xinetd.x86_64

bom instalado os dois pacotes temos que criar dois arquivos em /etc:
rsync.conf e rsyncd.secrets

dentro de rsyncd.conf vamos colocar as seguintes linhas:

uid=root
gid=root
log file = /var/log/rsync.log
host allow = (ip do servidor de backup)

# Compartilhamento que o servidor de bkp vai enxergar p/ fazer o Backup. Você pode criar quantos compartilhamentos forem necessários. [compartilhamento]
#Caminho do diretório do compartilhamento, onde irá ser feito o bkp
path = caminho do diretório
#Usuário que vai ser usado pelo rsync
auth users = usuário
#arquivo onde tem usuário e senha
secrets file = /etc/rsyncd.secrets
#indica que o servidor de backup poderá gravar no cliente, isso é útil em caso de restore
read only = false

rsyncd.secrets
#Nesse arquivo você coloca somente o usuário e a senha
usuário:senha

Esses dois arquivos tem que ter a permissão 600

A configuração do cliente está pronta. Agora vamos p/ mais complicado que é o servidor.

A parte fácil é instalar

p/ instalar o BackupPc é só dar o comando:

yum install BackupPc.noarch

Se não instalar junto o apache, instale manual, você irá precisar dele:

yum install httpd

pronto estão instalado.

O primeiro passo é criar um usuário no apache.

htpasswd -c /etc/BackupPC/apache.users usuário

Abra o firefox e digite http://localhost/BackupPC
digite o usuário e senha que vc criou no apache.
Se deu tudo certo deve abrir a tela do BackupPC.
Nas configurações nós precisamos mexer eu poucos parâmetros. A configuração original ele vai fazer um backup Completo por semana e o resto incremental. Eu deixei Padrão.
Vou optar por passar as configurações no arquivo texto.
Vá em: /etc/BackupPC

Edite o arquivo hosts

vi hosts

na ultima linha vc vai acrescentar o(s) cliente(s)

na primeira coluna => Nome do host
Segunda coluna => se é ip fixo (0) ou dhcp (1)
terceira coluna => usuário (no meu caso criei um usuario chamado backup)
quarta coluna => mais usuário (opcional)

salve e feche o arquivo.

entre no diretório PC/

digite: vi nome_do_cliente.pl

dentro do arquivo coloque as seguintes linhas:

#Aqui você coloca os compartilhamento que foram criados no cliente em rsync.conf

$Conf{RsyncShareName} = [
'compartilhamento1', 'compartilhamento2'
];

#Nesses campos coloque o usuário e a senha que estão no cliente no arquivo rsyncd.secrets


$Conf{RsyncdPasswd} = 'senha';
$Conf{RsyncdUserName} = 'usuário';

Salve e feche o arquivo.

Lembrete: tem que se criar um arquivo p/ cada cliente, ou seja tem 3 clientes? Os três tem que estar lista no arquivo hosts e no diretório pc tem que ter cliente1.pl, cliente2.pl, cliente3.pl.

volte ao diretório BackupPC

cd ..

edite o arquivo config.pl

vi config.pl

nesse arquivo vou listar somente os paramentros que modifiquei.

O resto deixei padrão.

$Conf{ServerHost} = 'nome do servidor de backup';

#Nessa Opção você seleciona aonde que quer que guarde os arquivo de Backup
$Conf{TopDir} = 'Caminho do armazenamento de backup';


#Arquivos que você quer que faça backup. Nesse caso está configurado todos os arquivos do compartilhamento. Existe a opção $conf{BackupFilesExclude} que vc indica os arquivo que não quer fazer backup. Lembrando que Backup Files Only tem prioridade sobre o comando BackupFilesExclude.
$Conf{BackupFilesOnly} = {'compartilhamento1' => [' '],
'compartilhamento2' => [' ']
};

#Horário que o BackupPC NÃO vai rodar o backup de jeito nenhum, normalmente vc coloca o horário de expediente
$Conf{BlackoutPeriods}

#Método usado p/ fazer a transferência de arquivo, no nosso caso será rsyncd. Se o cliente for Win use o método smb (que requer ajustes na configuração)
$Conf}XferMethod} = 'rsyncd';


#Nesse parametro coloque os compartilhamento que está criado no rsync.conf no cliente
$Conf{RsyncShareName} = [
'Compartilhamento1',
' ',
'compartilhamento2',
' ',
];

#coloque nas opção abaixo o usuário e senha que está no rsynd.secrets no cliente
$conf{RsyncdUserName} = 'usuário';
$conf{RsyncdPasswd} = 'senha';


#Nessa linha escolhe que tipo de compactação quer no arquivo de Backup. Quanto maior a compactação, mas demorado é o backup. No meu caso escolhi o bzip2 que é a compactação máxima. Tem a opção de deixar sem compactar também.
$Conf{ArchiveComp} = 'bzip2';

#deixar a interface em Português Brasileiro
$conf{Language} = 'pt_br';

Bm é isso, o BackupPC é uma ferramenta poderosa e tem muitos mais recursos do que eu listei aqui. Minha intenção foi só ajudar quem precisa configurar o servidor de backup de forma rápida.
Depois com calma vá lendo e aprimorando.
Quem quiser complementar faça um comentário que sempre será bem-vindo.

Data 10/03/2011


Estava instalando o BackupPC em um novo servidor e me deparei com seguinte erro na hora que iniciava o serviço:
Starting BackupPC: 2011-03-10 09:43:18 Can't create a test hardlink between a file in /backup/pc and /backup/cpool. Either these are different file systems, or this file system doesn't support hardlinks, or these directories don't exist, or there is a permissions problem, or the file system is out of inodes or full. Use df, df -i, and ls -ld to check each of these possibilities. Quitting...
[FALHOU]

a solução desse erro é criar de forma manual as pastas
cpool e pc
essas pastas devem ser criadas no mesmo diretório onde vai ser guardado os arquivo de backup e estar indicada na opção $Conf{TopDir} e o dono e grupo destas pastas devem ser backuppc.
chown backuppc.backuppc cpool/
chown backuppc.backuppc pc/

Outro erro que aconteceu foi iniciar o BackupPC sem as opções de edita hosts, editar configurações etc.

isso foi solucionado especificando na opção

$Conf{CgiAdminUsers} o nome do usuário administrador (note que esse usuário tem que ser o mesmo que você cadastrou no servidor apache) e na opção $Conf{CgiAdminUsersGroup} o grupo que vai administrar. ficou assim:

$Conf{CgiAdminUsers} = 'nome do usuário';

$Conf{CgiAdminUsersGroup} = 'backuppc';

novas dificuldades vou postando.

8 comentários:

  1. Bom dia. Cara me diz uma coisa, temos instalado aqui o backup pc mas ele perdeu a configuração de um dos servidores q fazia backup, ele diz q nunca fez backup dele. Só que os arquivos estão lá. Sabe me dizer o que está acontecendo? Sabe me dizer como posso restaurar um arquivo pela linha de comando? Meu e-mail é perjac@me.com Durbem.

    ResponderExcluir
  2. Ola Mauro, parabens pela dica.
    Estou com um problema no Backuppc se você puder ajudar te agradeço imensamente.
    Quero colocar um novo hd de maior capacidade para receber o backup do Backuppc. Como eu consigo fazer com que ele reconhece e grave nesse novo hd.
    Desde ja obrigado.

    ResponderExcluir
    Respostas
    1. você quer substituir o HD?
      ou acrescentar? se for acrescentar eu realmente não sei como te ajudar. só se for por LVM.
      agora se você quer substituir faz o seguinte:
      formata o hd e cria um diretório. por exemplo Backup

      no parametro TopDir coloca o nome do diretório onde o backup vai ser armazenado.

      como disse anteriormente não sei se pode colocar mais de um diretório no TopDir.


      abraços

      Excluir
  3. Ola Mauro,

    No Conf{TopDir} eu posso colocar um caminho de rede? tipo \\192.168.0.2

    ResponderExcluir
    Respostas
    1. Não pode.
      você tem que montar o compartilhamento na máquina
      se for linux com nfs se for windows monta um compartilhamento com uma letra de unidade

      Excluir
  4. Como fazer funcionar as exclusoes de arquivos para compartilhamentos windows, coloco mais empre acaba fazendo o backup.

    ResponderExcluir
    Respostas
    1. segue exemplos de Exclusão.
      Examples:

      $Conf{BackupFilesExclude} = '/temp';
      $Conf{BackupFilesExclude} = ['/temp']; # same as first example
      $Conf{BackupFilesExclude} = ['/temp', '/winnt/tmp'];
      $Conf{BackupFilesExclude} = {
      'c' => ['/temp', '/winnt/tmp'], # these are for 'c' share
      'd' => ['/junk', '/dont_back_this_up'], # these are for 'd' share
      };
      $Conf{BackupFilesExclude} = {
      'c' => ['/temp', '/winnt/tmp'], # these are for 'c' share
      '*' => ['/junk', '/dont_back_this_up'], # these are for other shares
      };

      Para eu te ajudar mais preciso ver seu arquivo de config.

      Excluir