28 junho 2007

Tutorial Bacula: Iniciando o serviço e operando o sistema

Chegamos a última parte do tutorial. Aqui vou falar sobre como iniciar o serviço e operar o servidor Bacula. Não veremos tudo, mas somente o essencial para que, a partir deste ponto, quem leu o tutorial possa configurar e operar o sistema, mesmo que basicamente. Então, mãos-à-obra.

Para iniciarmos o sistema, os comando são:

# bacula-dir

# bacula-fd

# bacula-sd

que iniciam o Director Daemon, o File Daemon e o Storage Daemon respectivamente. Caso exista algum erro no arquivo de configuração, irá aparecer uma mensagem apontando qual o erro e o serviço não irá subir. Se for esse o caso, corrija os erros e execute o comando novamente. Se não exibiu mensagem de erro alguma, então o sistema deve estar no ar. Caso queira confirmar, digite o comando:

# ps aux | grep bacula

Esse comando exibirá todos os processos que estejam rodando e que contenham a sequência "bacula". Se tudo deu certo, vamos operar o sistema.

Para operar o sistema, utilizamos o console do Bacula, no caso o bconsole. Digite o comando:

# bconsole

Feito isso já estará no console do Bacula. A partir de agora, os comando com * na frente são referentes ao bconsole. A primeira ação a ser feita é nomear os volumes que serão utilizados. Para isso, digite o comando

* label

Esse comando irá pedir um nome que você queira dar ao volume. Logo depois irá pedir para que você indique em qual Pool você quer adicionar esse volume, será exibido os Pools que foram configurados no arquivo de configuração do Director. Escolhendo o Pool, ele irá gravar o nome do volume no banco de dados e, pelo menos no caso de fitas, eu não sei como o bacula trata outros dispositivos, também gravará o nome na própria fita. Você deve fazer isso com todos os volumes que irá utilizar no seu ciclo de backup. Se seguir o modelo deste tutorial, terá que nomear 1 volume para os backups incrementais e 2 volumes para os backups semanais, além de 1 volume todo mês para o backup mensal.

Se você estiver utilizando fitas para fazer backup, caso precise renomear alguma fita, o comando label não irá funcionar. Para isso terá que utilizar o utilitário btape do próprio bacula. Não vou entrar em detalhes sobre o btape, a unica dica que irei passar é que é preciso parar o serviço do bacula, em especial o bacula-sd, para poder utiliza-lo. A sintaxe é:

# btape /dev/nts0

Caso utiliza outro dispositivo que não o /dev/nts0, substitua-o pelo qual utilizar. Depois deste comando você irá entrar em um console igual ao bconsole, mas com opções diferentes.

Depois de nomear os volumes com o comando label, praticamente só será necessário trocar os dispositivos, caso sejam dispositivos removíveis, quando necesário.

Temos também o comando mount, que tem funcionalidade de montar o dispositivo. Caso você esteja usando somente fitas, simplesmente execute o comando no console e irá montar a fita que estiver dentro da unidade. Caso multiplos dispositivos de armazenamento, pode ser necesário usar a sintaxe:

* mount

25 junho 2007

Tutorial Bacula: Configurando Director Daemon

Voltei para postar mais uma parte do tutorial sobre Bacula, desta vez explicarei sobre a configuração do Director Daemon. Como já havia dito, é a configuração mais complexa do Bacula, e, como irão perceber, o arquivo de configuração é bem extenso. Eu modifique toda a disposição do arquivo de configuração em relação ao padrão, dividindo-o em seções que, na minha opinião, fica bem mais fácil de ser entendido.

Coloquei algumas observações em forma de comentário no meio das configurações. Basicamente todos os pontos importantes estão comentados. Os motivos para os pontos que não estão comentados são: a) não havia necessidade de comentar, é auto-explicativo; b) a configuração do item logo acima é igual e já esta comentado (devemos evitar redundância); c) eu realmente esqueci de comentar ;-), nesse caso me avisem para que possa corrigir.

Vamos ver as configurações:

#
# Configuracoes globais do servidor bacula
#

Director {

# Nome do Director Daemon – Servidor Bacula que estamos configurando agora
Name = sf1-dir
# Porta pela qual o servidor Bacula será acessado (normalmente pelo console)
DIRport = 9101
# Arquivo contendo as instruções SQL usadas para acessar o banco de dados
QueryFile = "/etc/bacula/query.sql"
# Diretório de trabalho do Director
WorkingDirectory = "/var/lib/bacula/working"
PidDirectory = "/var/run"
# Numero máximo de trabalhos ao mesmo tempo
Maximum Concurrent Jobs = 1
# Senha necessaria para acessar o servidor bacula pelo console
Password = "senha"
# Configuração de mensagens utilizadas pelo Director
Messages = Mensagens
}

##################################################################################
## Banco de dados a ser usado para armazenar as informações dos backups
##################################################################################
Catalog {

# Nome do catálogo
Name = MyCatalog
# Nome do banco de dados, usuário e senha para ser acessado pelo Bacula
# Por padrão a senha do banco de dados esta em branco, caso você altere a senha
# no banco de dados, deve colocar a nova senha aqui
dbname = bacula; user = bacula; password = ""
}

##################################################################################
# Seção clientes
# Configura os clientes onde estão os dados a serem armazenados em backup
##################################################################################
###################
## Servidor ServArq
###################
Client {

Name = ServArq
# Nome ou endereço IP do cliente
Address = servarq
# Porta de acesso ao cliente, configurada no arquivo de configuração do cliente
FDPort = 9102
# Catalogo a ser utilizado no banco de dados
Catalog = MyCatalog
# Senha para se acessar o cliente, configurada no arquivo de configuração do cliente
Password = "senha"
# Tempo em que o backup do cliente sera armazenado no banco de dados
# Passado esse tempo o registro desse arquivo sera excluído
# Isso não afeta o backup que esta armazenado
File Retention = 30 days
# Tempo em que os trabalhos do cliente serão armazenados no baco de dados
# Passado esse tempo o registro desse arquivo sera excluído
# Isso não afeta o backup que esta armazenado
Job Retention = 30 days
# Este comando irá apagar os registros dos arquivos e jobs,
# citados acima, automaticamente
AutoPrune = yes
}

# Este cliente é praticamente igual ao cliente acima, somente muda
# o tempo de retenção dos arquivos e dos jobs
# Fiz dessa forma pois os backups mensais devem ser guardados por
# um tempo muito maior que os backups diários e semanais
Client {

Name = ServArqMensal
Address = servarq
FDPort = 9102
Catalog = MyCatalog
Password = "senha"
# Estou deixando para 20 anos pois o backup mensal terá retenção de 20 anos
File Retention = 20 years
Job Retention = 20 years
AutoPrune = yes
}

#############################################
## ServApl – servidor de aplicações
## Basicamente é repetida a configuração do ServArq
## inclusive uma configuração distinta para o backup
## mensal
#############################################
Client {

Name = ServApl
Address = servapl
FDPort = 9102
Catalog = MyCatalog
Password = "senha"
File Retention = 30 days
Job Retention = 30 days
AutoPrune = yes
}

Client {

Name = ServAplMensal
Address = servapl
FDPort = 9102
Catalog = MyCatalog
Password = "senha"
File Retention = 20 years
Job Retention = 20 years
AutoPrune = yes
}

###############
## ServBD – servidor de banco de dados
###############
Client {

Name = ServBD
Address = servbd
FDPort = 9102
Catalog = MyCatalog
Password = "senha"
File Retention = 30 days
Job Retention = 30 days
AutoPrune = yes
}

Client {

Name = ServBDMensal
Address = servbd
FDPort = 9102
Catalog = MyCatalog
Password = "senha"
File Retention = 20 years
Job Retention = 20 years
AutoPrune = yes
}

##################################################################################
# Seção Pool
##################################################################################

Pool {

# Define o Pool para o backup semanal completo
Name = Semanal
Pool Type = Backup
# As 2 opções abaixo são utilizada para que a fita sera auto reciclada,
# ou seja, eh como se dissesse que os dados da fita podem ser apagados
# e gravados novos dados em seu lugar
Recycle = yes
AutoPrune = yes
# Define quanto tempo os dados ficarão na fita sem poderem ser apagados.
# Somente a depois desse tempo a fita sera reciclada
Volume Retention = 13 days
# Define a quantidade máxima de trabalhos que podem ser armazenados em uma fita
# sem que ela precise ser reciclada
Maximum Volume Jobs = 3
# Define o numero máximo de fitas que sera utilizada pelo Pool
Maximum Volumes = 2
}

Pool {

# Define o Pool para o backup diário incremental.
# As opções abaixo são as mesmas do Pool Semanal.
Name = Diario
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 7 days
Maximum Volume Jobs = 12
Maximum Volumes = 1
}

Pool {

# Define o Pool para o backup Mensal completo.
# As opções abaixo são as mesmas das anteriores.
# Aqui não definiremos um máximo de volumes, isso faz com que
# possa ser usado quantos volumes forem necessários.
Name = Mensal
Pool Type = Backup
Recycle = yes
AutoPrune = yes
Volume Retention = 20 years
Maximum Volume Jobs = 3
}

# O Pool Defaul deve ser criado pois os jobs exigem que seja
# definido o parâmetro Pool, e como não é bom utilizar um dos Pools
# acima, criamos um default. Ele nunca será usado de fato.
Pool {

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

##################################################################################
# Seção Schedule
# Agenda o nível , a data e a hora do backup para os jobs
##################################################################################
# É necessário criar um agendamento para cada cliente, pois não é
# possível fazer backup de vários clientes com o mesmo trabalho de backup
##########
# ServArq
##########
Schedule {

# Agenda o backup completo para a segunda, terceira, quarta e quinta (caso haja)
# segunda-feiras de cada mês, e também os backup diários incrementais.
# Se o mês não tiver 5 segunda-feiras, a quinta segunda-feira será ignorada.
# O backup sera sempre as 22:00 horas.
# Foram passados dois parâmetros Run pois um mesmo agendamento pode
# agendar datas e horários diferentes para o mesmo backup.

# Nome do agendamento
Name = ServArq
# Indica o nível, o dia e a hora do backup
Run = Full 2nd-5th Monday at 10:00pm
Run = Incremental tue-sun at 10:00pm

}

# Agenda o backup mensal para o servidor ServArq
Schedule {

Name = ServArqMensal
Run = Full 1st Monday at 10:00pm
}

############
# ServApl
############
# Agenda o backup completo e incremental para o servidor ServApl
# O backup sera sempre as 22:10 horas
Schedule {

Name = ServApl
Run = Full 2nd-5th Monday at 10:10pm
Run = Incremental tue-sun at 10:10pm
}

# Agenda o backup mensal para o servidor ServApl
Schedule {

Name = "ServAplMensal"
Run = Full 1st Monday at 10:10pm
}

############
# ServBD
############
# Agenda o backup completo e incremental para o servidor ServBD
# O backup sera sempre as 22:20 horas
Schedule {

Name = ServBD
Run = Full 2nd-5th Monday at 10:20pm
Run = Incremental tue-sun at 10:20pm
}

# Agenda o backup mensal para o servidor ServBD
Schedule {

Name = ServBDMensal
Run = Full 1st Monday at 10:20pm
}

##################################################################################
# Seção FileSet
# Determina quais arquivos devem ser feitos backup e quais ficarão fora dos backups
##################################################################################
FileSet {

Name = ServArq
# Define quais arquivos ou diretórios farão parte do backup
Include {
# Define algumas opções para o backup
Options {
# Opção de segurança
signature = MD5
# Compressão dos dados usando GZIP
# O número 9 indica o taxa de compressão, quanto mais alto
# mais compressão. Vai de 1 a 9
compression=GZIP9
# Exclui do backup os arquivos com extensão tmp
wildfile = "*.tmp"
# Diz que os arquivos indicados em wildfile não farão parte do backup
Exclude = yes
}
# Define quais diretórios farão parte do backup
File = /arquivos/dados
File = /etc
}
}

FileSet {

Name = "ServApl"
Include {
Options {
signature = MD5
IgnoreCase = yes
compression=GZIP9
wildfile = "*.tmp"
Exclude = yes
}
# Por ser sistema de arquivos Windows é necessário indicar a letra da unidade
# A barra (/) não esta errada, por ser em Linux é essa mesmo que temos de usar
File = "F:/Aplicacoes"
}
}

FileSet {

Name = "ServBD"
Include {
Options {
signature = MD5
IgnoreCase = yes
compression=GZIP9
}
File = "G:/BKPBancos"
}
}

##################################################################################
# Seção Storage
# Configura qual servidor esta com a unidade de fita, qual unidade de fita usar
##################################################################################
Storage {

# Nome do dispositivo a ser usado no Director
Name = AIT-1
# Endereço do servidor, pode ser o nome ou o endereço IP
Address = ServArq
# Porta pela qual o servidor de Storage será acessada
SDPort = 9103
# Senha com a qual o Director acessará o Storage Daemon
Password = "senha"
# Dispositivo configurado no Storage Daemos que iremos utilizar
Device = AIT-1
}

##################################################################################
# Seção Job
# Configura os trabalhos de backup
##################################################################################
# Para que se possa fazer um backup completo na segunda-feira e incremental
# nos demais dias da semana, é necessário que os dois tipos de backup sejam
# controlados por este mesmo job. É necessário que o Client e o FileSet também
# sejam os mesmo nos dois tipos de backup. Analisando a configuração veremos isso.
# Uma observação que deve ser feita é que, mesmo quando estiver agendado para
# executar o backup incremental, o Bacula poderá executar o backup Full. Dois motivos
# para que isso aconteça é: 1 – Nunca ter sido feito um backup full desses arquivos antes;
# 2 – ter sido feito alguma mudança no FileSet.
############
# ServArq
############
# Define o trabalho para o backup semanal e diário do ServArq
Job {

# Nome do trabalho
Name = ServArq
# Tipo do trabalho, pode ser Backup ou Restore
Type = Backup
# Cliente que foi configurado acima
Client = ServArq
# File set do servidor ServArq configurado acima
FileSet = ServArq
# O storage configurado acima
Storage = AIT-1
# O agendamento para o backup do ServArq configurado acima
Schedule = ServArq
# O Pool configurado, mas que será indicado aqui apenas por que o Bacula
# exige esse parâmetro, não será utilizado
Pool = Default
# Os dois parâmetros abaixo serão os utilizados para indicar o Pool.
# Um indica o Pool o Pool para o backup Full e o outro para o Incremental.
# O Bacula que indica qual Pool será utilizado, conforme agendamento.
Full Backup Pool = Semanal
Incremental Backup Pool = Diario
# Configuração de mensagem utilizada por este Job
Messages = Mensagens
# Script que será executado antes da execução do backup. No caso, esse script
# montará o dispositivo (caso não esteja montado) antes de ser feito o backup.
# Mostrarei esse script no final dessa parte do artigo.
RunBeforeJob = "/usr/sbin/monta_tape.sh"
# Define a prioridade do Job, quanto menor o valor, a prioridade é maior
# O padrão é 10. É uma opção importante pois, caso os backups atrasem, a execução
# será pela prioridade e não mais pelo horário.
Priority = 10
}

# Define o trabalho para o backup mensal do servidor ServArq
Job {

Name = ServArqMensal
Type = Backup
Client = ServArqMensal
FileSet = ServArq
Storage = AIT-1
# Neste caso informamos somente um Pool, pois o backup mensal
# será sempre completo
Pool = Mensal
Schedule = ServArqMensal
Messages = Mensagens
RunBeforeJob = "/usr/sbin/monta_tape.sh"
Priority = 10
}

# Define o trabalho de Restore o backup semanal do servidor ServArq
# O Job Restore é importante para restaurarmos um backup
# As opções são as mesmas dos Jobs de backup
Job {

Name = RestoreServArqSemanal
Type = Restore
Client = ServArq
FileSet = ServArq
Storage = AIT-1
Messages = Mensagens
Pool = Semanal
Where = /tmp/bacula-restores
}

Job {

Name = RestoreServArqDiario
Type = Restore
Client = ServArq
FileSet = ServArq
Storage = AIT-1
Messages = Mensagens
Pool = Diario
Where = /tmp/bacula-restores
}

Job {

Name = RestoreServArqMensal
Type = Restore
Client = ServArqMensal
FileSet = ServArq
Storage = AIT-1
Messages = Mensagens
Pool = Mensal
Where = /tmp/bacula-restores
}

###############
# ServApl
###############
Job {

# Define o trabalho para o backup semanal do servidor ServApl
Name = ServApl
Type = Backup
Client = ServApl
FileSet = ServApl
Storage = AIT-1
Schedule = ServApl
Pool = Default
Full Backup Pool = Semanal
Incremental Backup Pool = Diario
Messages = Mensagens
RunBeforeJob = "/usr/sbin/monta_tape.sh"
Priority = 11
}

Job {

Name = ServAplMensal
Type = Backup
Level = Full
Client = ServAplMensal
FileSet = ServAplMensal
Storage = AIT-1
Pool = Mensal
Schedule = ServAplMensal
Messages = Mensagens
RunBeforeJob = "/usr/sbin/monta_tape.sh"
Priority = 11
}

Job {

Name = RestoreServAplSemanal-sapp
Type = Restore
Client = ServApl
FileSet = ServApl
Storage = AIT-1
Messages = Mensagens
Pool = Semanal
Where = /tmp/bacula-restores
}

Job {

Name = RestoreServAplDiario
Type = Restore
Client = ServApl
FileSet = ServApl
Storage = AIT-1
Messages = Mensagens
Pool = Diario
Where = /tmp/bacula-restores
}

Job {

Name = RestoreServAplMensal
Type = Restore
Client = ServApl
FileSet = ServApl
Storage = AIT-1
Messages = Mensagens
Pool = Mensal
Where = /tmp/bacula-restores
}

###############
# ServBD
###############
Job {

# Define o trabalho para o backup semanal
Name = ServBD"
Type = Backup
Client = ServBD
FileSet = ServBD
Storage = AIT-1
Schedule = ServBD
Pool = Default
Full Backup Pool = Semanal
Incremental Backup Pool = Diario
Messages = Mensagens
RunBeforeJob = "/usr/sbin/monta_tape.sh"
Priority = 12
}

Job {

Name = ServBDMensal
Type = Backup
Level = Full
Client = ServBDMensal
FileSet = ServBDMensal
Storage = AIT-1
Pool = Mensal
Schedule = ServBDMensal
Messages = Mensagens
RunBeforeJob = "/usr/sbin/monta_tape.sh"
Priority = 12
}

Job {

Name = RestoreServBDSemanal
Type = Restore
Client = ServBD
FileSet = ServBD
Storage = AIT-1
Messages = Mensagens
Pool = Semanal
Where = /tmp/bacula-restores
}

Job {

Name = RestoreServBDDiario
Type = Restore
Client = ServBD
FileSet = ServBD
Storage = AIT-1
Messages = Mensagens
Pool = Diario
Where = /tmp/bacula-restores
}

Job {

Name = RestoreServBDMensal
Type = Restore
Client = ServBD
FileSet = ServBD
Storage = AIT-1
Messages = Mensagens
Pool = Mensal
Where = /tmp/bacula-restores
}

##################################################################################
# Seção Mensagens
##################################################################################

Messages {

Name = Mensagens
# Envia todas as mensagens geradas pelo Bacula para o arquivo
# /var/log/messages
syslog = all, !skipped, !saved
}

Esse é o script que será executado antes do primeiro Job do dia para montar a fita no Bacula:
Depois de criado o script, é só dar as permissões adequadas e estará pronto.

Eu sei que esteticamente essa listagem do arquivo de configuração não ficou nada boa, mas espero que todos tenham conseguido entende-lo. Não é mesmo complexo? Mas o grande problema é que, talvez, para deixar as configurações mais simples tenha uma grande perda na flexibilidade do sistema. O ideal seria um sistema menos complexo de se configurar e com toda flexibilidade que o Bacula tem. Acho que vou fazer disso o meu projeto de TCC da faculdade ;-).

Um ponto que gostaria de comentar é sobre redundância, que falei no começo do post, que nesse arquivo de configuração é abundante (pelo menos a meu ver). Uma mesmas configuração pode ser encontrada em vários pontos diferentes da configuração. Acredito que isso seja uma coisa que gera dificuldade para a maioria das pessoas entenderem como o Bacula funciona.

Como de praxe, peço para que comentem principalmente se o artigo precisar de alguma melhoria para que fique mais fácil de entende-lo.

A próxima parte, a última (felizmente, não aguento mais escrever sobre Bacula :-\ ), trará a explicação de como operar o sistema. Será um manual básico sobre as principais funções necessárias para operação do sistema, sem se aprofundar muito. Pretendo faze-lo até a próxima semana.

19 junho 2007

Tutorial Bacula: Configurando Storage Daemon, File Daemon e Console

Depois de algum tempo enrolado com provas da faculdade, estou eu aqui para mais uma parte do tutorial sobre Bacula. Aqui vamos ver como configurar os serviços Storage Daemon, File Daemon e Console. O Director Daemon será configurado a parte por possuir uma grande complexibilidade e, por isso, ser um assunto muito extenso.

Arquivo /etc/bacula/bacula-sd.conf (Storage Daemon)

Vamos começar pelo Storage Daemon. Segue abaixo o arquivo de configuração /etc/bacula/bacula-sd.conf:

# Configuração para o Servidor de Armazenamento.
# Esse é o servidor no qual está instalada fisicamente a mídia de armazenamento

#
# Aqui são definidas as configurações do próprio servidor de armazenamento
#
Storage {
# Nome do Storage Daemon, esse é o nome utilizado pelo bacula,
# não necessariamente precisa ser o hostname
Name = sf1-sd
# Porta utilizada pelo Director Daemon para acessar o Sotorage Daemon
SDPort = 9103 Daemon
# Diretório de trabalho (temporário) do Storage Daemon
WorkingDirectory = "/var/lib/bacula/working"
# Diretório onde é armazenado informação sobre o processo rodando
Pid Directory = "/var/run"
# Númro de trabalhos rodando ao mesmo tempo
# Se você irá fazer mais de 1 backup ao mesmo tempo, indique o número aqui
# No meu caso será somente 1 trabalho mesmo
Maximum Concurrent Jobs = 1
}

#
# Aqui é listado a configuração para conexão com o Director Daemon
#
Director {
# Nome do Director Daemon (cadastrado no /etc/bacula/bacula-dir.conf)
Name = sf1-dir
# Senha que o Director irá usar para acessar o Storage
Password = "senha"
}

#
# Define as configurações da unidade de fita
#
Device {
# Nome do dispositivo
Name = AIT-1
# Tipo do dispositivo, pode ser File (arquivos, partições), Tape (fitas), Fifo (sistemas de acesso sequencial) ou DVD
Device Type = Tape
# Nome do dispositivo pelo qual o linux irá acessar a unidade de fita
Archive Device = /dev/nst0
# Diz se a fita ira receber um nome pelo Bacula
LabelMedia = yes;
# As opções abaixo não tive tempo de procurar saber para que servem,
# mas ficando no padrão já funcionan
Random Access = Yes;
AutomaticMount = yes;
RemovableMedia = no;
AlwaysOpen = no;
}

#
# Essa opção envia as possíveis mensagens geraradas para o Director
#
Messages {
# Nome da configuração de mensagens
Name = Standard
# Nome do Director Daemon
# all significa que todas mensagens serão enviadas
director = sf1-dir = all
}
Obs.: Os comentários originais do arquivo de configuração foram tirados para uma melhor visualização, e nem todas as opções possíveis para configuração do Storage Daemon são tratadas aqui, somente as necessárias para o correto funcionamento do sistema estão tratadas aqui. Isso também vale para todos os outros arquivos de configuração.

As configurações acima servem para disponibilizar um dispositivo de backup (que no meu caso é uma unidade AIT-1 Turbo, mas pode ser qualquer outra unidade de fita, além de gravadores de DVDs e CDs, partições de HDs, etc) para o Director, que irá acessa-lo no momento do backup ou da recuperação dos dados. Os nomes dados é você quem escolhe, não é necessário ser o nome correto do dispositivo

Acredito que com os comentários nas configurações já seja possível entender a configuração do Storage Daemon. Qualquer duvida ou opinião será bem-vinda para melhoria do artigo.

Arquivo /etc/bacula/bacula-fd.conf (File Daemon)
#
# Esse é o arquivo responsável pelas configurações do cliente,
# ou seja, o local onde estão os dados a serem incluidos no backup
#

#
# Aqui é listado a configuração para conexão com o servidor principal do bacula
#
Director {
# Nome do Director Daemon que irá acessar este File Daemon
Name = sf1-dir
# Senha que o Director usará para acessar este cliente
Password = "senha"
}

#
# Especificação das configurações globais do cliente
#
FileDaemon {
# Nome deste cliente, pode ser qualquer nome que o identifique melhor
Name = sf1-fd
# Porta pela qual o servidor bacula ira acessar o cliente
FDport = 9102
# As opções abaixo são indenticas as do Storage Daemon
WorkingDirectory = /var/lib/bacula/working
Pid Directory = /var/run
Maximum Concurrent Jobs = 1
}

#
# Essa opção envia as possíveis mensagens geradas para o Director
#
Messages {
# Nome da configuração de mensagens
Name = Standard
# Nome do Director Daemon
# all significa que todas mensagens serão enviadas
# O ! significa exceto
director = sf1-dir = all, !skipped, !restored
}
Arquivo /etc/bacula/bconsole.conf (File Daemon)
#
# Bacula User Agent (or Console) Configuration File
#

Director {
# Nome do Director Daemon que o console irá acessar
Name = sf1-dir
# Porta pela qual o console irá acessar o Director
DIRport = 9101
# Endereço do Director, pode ser o hostname ou endereço IP
address = sf1
# Senha com a qual o console irá acessar o Director
Password = "senha"
}

Pronto, com essas configurações já estamos 30% do servidor pronto, resta agora configurar o Director Daemon, que corresponde por 50%, e aprender a operar o Bacula pelo console. Teremos mais 2 posts para terminar o artigo e estarmos aptos a colocar o sistema para rodar. Espero terminar esse artigo nas próximas 2 semanas, e, como sempre, espero a contribuição de vocês para melhorar o artigo.

Obs.: As porcentagens foram calculadas por mim, sem nenhuma pretenção de estarem certas, mas quem sabe eu tenha acertado mesmo ;-)

15 junho 2007

Mudança de layout

Mudei o layout do blog esperando assim melhorar sua visualização. Caso alguém tenha algum problema com a visualização do blog, por favor me avise para poder resolver o ploblema.

12 junho 2007

Dispositivo para teste em portas USB

Em uma lista de discução que participo foi enviada uma mensagem bastante interessante. É a notícia de um artigo sobre como fazer um dispositivo para teste de portas USBs. Para quem tem pendrive esse dispositivo é muito util, pois evita de queima-lo em portas USB ligadas de maneira errada. Segue o link para o artigo

http://www.ribafs.net/joomla/index.php?option=com_content&task=view&id=60&Itemid=85


Obs.: A terceira parte do tutorial sobre Bacula vai demorar um pouco pra sair. To em semana de prova na faculdade, então provavelmente só sairá na semana que vem.