quinta-feira, 23 de maio de 2013

Instalando o Bacula-web


Bacula-Web é um programa open source (licença GPL v 2.0) ferramenta que faz parta da projeto do Bacula community project. As principais vantagens do Bacula-Web são a simplicidade de instalação, fácil de configurar e é totalmente baseado na web, sem a necessidade de instalação do cliente pesados, configurar e upgrades. Bacula-Web fornece todas as informações sobre seus últimos trabalhos de backup, restores, volumes, pools e assim por diante ...

Baixe o Bacula-web

http://www.bacula-web.org/tl_files/downloads/bacula-web-5.2.13-1.tar.gz

Instalando dependências Debian
  • apt-get install apache2 php5 php5-dev php5-gd php5-mcrypt php5-mysql
Instalando dependências CentOS
  • yum install httpd php php-devel php-gd php-mysql php-mbstring php-mcrypt php-pear-DB
Instalação:

mkdir /var/www/html/bweb
tar -zxvf bacula-web-5.2.13-1.tar.gz -C /var/www/html/bweb
cd /var/www/html/bweb/application/config/
cp config.php.sample config.php
vim config.php

Edite somente o que está abaixo:

$config['language'] = 'pt_BR';
$config[0]['label'] = 'Backup Server';
$config[0]['host'] = 'localhost';
$config[0]['login'] = 'root';
$config[0]['password'] = '123456';
$config[0]['db_name'] = 'bacula';
$config[0]['db_type'] = 'mysql';
$config[0]['db_port'] = '3306';

cd /var/www/html
chmod 755 bweb -R
chown root.root bweb -R
chown apache bweb/application/view/cache -R
/etc/init.d/apache restart

Teste no navegador:

http://<ip_do_servidor>/bweb


segunda-feira, 13 de maio de 2013

Alterando o editor padrão no Debian Squeeze

Execute o comando:

update-alternatives --config editor

O resultado abaixo será informado:

Existem 3 escolhas para a alternativa editor (disponibiliza /usr/bin/editor).

  Seleção   Caminho             Prioridade Estado
------------------------------------------------------------
* 0            /bin/nano             40        modo automático
  1            /bin/nano              40        modo manual
  2            /usr/bin/vim.basic  30       modo manual
  3            /usr/bin/vim.tiny    10        modo manual

Pressione enter para manter a escolha actual[*], ou digite o número da seleção:

Informe o número correspondente ao editor que você queria como padrão do sistema.

quinta-feira, 9 de maio de 2013

Instalação e configuração do Bacula

Nesse tutorial tentarei ensinar a instalação de um servidor Debian com o Bacula, fazendo backup e restore da própria máquina.
Posteriormente mostrarei como configurar os clientes em máquinas, Ubuntu e Windows XP e 7.

Instalação das dependências no Debian:
  • apt-get install build-essential vim
  • apt-get install mysql-client mysql-common mysql-server-5.1 mysql-server-core-5.1 libmysqld-dev
Instalação das dependências no CentOS:
  • yum groupinstall 'Development Tools'
  • yum install mysql mysql-devel mysql-server
Baixe a última versão do Bacula (nesse caso, é 5.2.6):
  • tar -zxvf bacula-5.2.6.tar.gz 
  • ./configure --with-mysql
  • make
  • make install
  • cp /etc/bacula/bacula /etc/init.d
  • invoke-rc.d bacula status
Criando o banco MySQL
  • ./create_bacula_database -u root -p
  • ./make_bacula_tables -u root -p
  • ./grant_bacula_privileges -u root -p
No fim de cada comando você deverá informar a senha de root do servidor MySQL.

Arquivos de configuração do Bacula
  • bacula-dir.conf
  • bacula-sd.conf
  • bacula-fd.conf
Configurando o Client

Director {
  Name = bacula-dir
  Password = "bacula"
}
Director {
  Name = bacula-mon
  Password = "bacula"
  Monitor = yes
}
FileDaemon {
  Name = bacula-fd
  FDport = 9102
  WorkingDirectory = /var/bacula/working
  Pid Directory = /var/run
  Maximum Concurrent Jobs = 20
}
Messages {
  Name = Standard
  director = bacula-dir = all, !skipped, !restored
}

Configurando o Storaged

Storage {                            
  Name = bacula-sd
  SDPort = 9103                       
  WorkingDirectory = "/var/bacula/working"
  Pid Directory = "/var/run"
  Maximum Concurrent Jobs = 20
}
Director {
  Name = bacula-dir
  Password = "bacula"
}
Director {
  Name = bacula-mon
  Password = "esmaltec"
  Monitor = yes
}
Device {
  Name = bacula
  Media Type = File
  Archive Device = /backup/bacula
  LabelMedia = yes;                  
  Random Access = Yes;
  AutomaticMount = yes;              
  RemovableMedia = no;
  AlwaysOpen = no;
}
Messages {
  Name = Standard
  director = bacula-dir = all
}

Configurando o Director

Director {              
  Name = bacula-dir
  DIRport = 9101
  QueryFile = "/etc/bacula/query.sql"
  WorkingDirectory = "/var/bacula/working"
  PidDirectory = "/var/run"
  Maximum Concurrent Jobs = 3
  Password = "bacula"
  Messages = Daemon
}
Catalog {
  Name = MyCatalog
  dbname = "bacula"; dbuser = "root"; dbpassword = "root"
}
Messages {
  Name = Standard
  mailcommand = "/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"
  operatorcommand = "/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: Intervention needed for %j\" %r"
  mail = root@localhost = all, !skipped           
  operator = root@localhost = mount
  console = all, !skipped, !saved
  append = "/var/bacula/working/log" = all, !skipped
  catalog = all
}
Messages {
  Name = Daemon
  mailcommand = "/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"
  mail = root@localhost = all, !skipped           
  console = all, !skipped, !saved
  append = "/var/bacula/working/log" = all, !skipped
}
Console {
  Name = bacula-mon
  Password = "bacula"
  CommandACL = status, .status
}

Job {
  Name = "Backup"
  Type = Backup
  Level = FULL
  Client = bacula-fd
  FileSet = "bacula"
  Schedule = "bacula"
  Storage = bacula
  Messages = Standard
  Pool = bacula
  Priority = 10
  Write Bootstrap = "/var/bacula/bacula.bsr"
}
Job {
  Name = "Restore"
  Type = Restore
  Client=bacula-fd
  FileSet="bacula"
  Storage = bacula
  Pool = bacula
  Messages = Standard
  Where = /bacula/restore
}

FileSet {
  Name = "bacula"
  Include {
    Options {
      signature = MD5
    }
    File = /etc
    File = /home
  }
}

Client {
  Name = bacula-fd
  Address = 192.168.0.10
  FDPort = 9102
  Catalog = MyCatalog
  Password = "bacula"
  File Retention = 30 days
  Job Retention = 6 months
  AutoPrune = yes
}

Storage {
  Name = bacula
  Address = 192.168.0.5
  SDPort = 9103
  Password = "esmaltec"
  Device = bacula
  Media Type = File
}

Schedule {
  Name = "bacula"
  Run = Full sun-sat at 23:10
}

Pool {
  Name = bacula
  Pool Type = Backup
  Recycle = yes
  AutoPrune = yes
  Volume Retention = 365 days
}

Reinicie o serviço do bacula.

Executando o primeiro backup

Para rodar o backup é necessário criar o pool de onde os dados serão salvos, execute os comandos baixo:
  • bconsole
Você entrar na console de administração do bacula, digite help para visualizar todos os comando que são suportados
  • add
Comando para criar o pool, serão feitas duas perguntas o tamanho e o nome do pool, responda 0 para a primeira pergunta e o nome que desejar para a segunda.
  • run
Comando para rodar o backup, aparecerão duas opções de jobs, pois são as que criamos no director. Escolha a referente ao backup e confirme a execução do backup.

Executando o restore

Entre na console de administração do bacula e execute o comando:
  • restore
A seguinte lista será mostrada:

To select the JobIds, you have the following choices:
     1: List last 20 Jobs run
     2: List Jobs where a given File is saved
     3: Enter list of comma separated JobIds to select
     4: Enter SQL list command
     5: Select the most recent backup for a client
     6: Select backup for a client before a specified time
     7: Enter a list of files to restore
     8: Enter a list of files to restore before a specified time
     9: Find the JobIds of the most recent backup for a client
    10: Find the JobIds for a backup for a client before a specified time
    11: Enter a list of directories to restore for found JobIds
    12: Select full restore to a specified Job date
    13: Cancel

Primeiramente você escolherá a opção de número 1 para ver o JobId dos backup que você acabou de executar. Agora escolha a opção de número 12 e informe o JobId do backup. Isso será mostrado a você:

You are now entering file selection mode where you add (mark) and
remove (unmark) files to be restored. No files are initially added, unless
you used the "all" keyword on the command line.
Enter "done" to leave this mode.

cwd is: /
$

Este é um outro console, nele você pode listar e navegar os diretórios que você foram "backpeados" com os comandos cd, ls, etc. Seu backup contém duas pasta, "etc" e "home", iremos escolher a pasta home para restaurar, o comando para isso é:
  • mark home/
Para finalizar digite:
  • done
Confirme a execução do restore, com isso os dados serão restaurados dentro da pasta que você informou no director.

Essa é a configuração básica para o funcionamento do Bacula.

segunda-feira, 6 de maio de 2013

Reativar serviço MySQL após exclusão do diretório base

Caso você exclua acidentalmente o diretório base do MySQL acidentalmente com o comando:

rm -rf /var/lib/mysql/*

não se desespere é tranquilo de resolver.

Execute o comando:

apt-get --reinstall install mysql-server-5.1

O MySQL será reinstalado e sua base também, mas a pergunta da senha de root não será feita. Segue o link ensinando a quebrar essa senha:

http://suporte-em-ti.blogspot.com.br/2012/12/quebrando-senha-de-root-do-mysql-no.html

OBS.: Lembre-se que com esse tutorial será possível somente subir o serviço do MySQL, infelizmente o dados que ali estavam não serão recuperados.