Bacula

De $1

 

Installation

apt-get install mysql-server

Créer un utilisateur mysql bacula

apt-get install bacula bacula-director-mysql bacula-sd-mysql bacula-doc
apt-get install bacula-console-qt

Installer Bacula-web

apt-get install apache2 php5 gettext php5-gd php-db php5-mysql

Téléchargez : http://sourceforge.net/projects/bacu...guy-xxx.tar.gz

Décompressez le et déplacez le dossier bacula-web sur le serveur.

Editez le fichier bacula.conf pour le connecter au serveur mysql

Dans le fichier /etc/php5/apache2/php.ini pensez à activer les extensions :

extension=mysql.so
extension=gd.so

Redémarrez le serveur web.

/etc/init.d/apache2 restart

Exemples de fichiers conf

bacula-dir.conf

#

# Default Bacula Director Configuration file

#

#  The only thing that MUST be changed is to add one or more

#   file or directory names in the Include directive of the

#   FileSet resource.

#

#  For Bacula release 2.2.8 (26 January 2008) -- debian lenny/sid

#

#  You might also want to change the default email address

#   from root to your address.  See the "mail" and "operator"

#   directives in the Messages resource.

#



Director {                            # define myself

  Name = bckp001-dir

  DIRport = 9101

  QueryFile = "/etc/bacula/scripts/query.sql"

  WorkingDirectory = /var/lib/bacula

  PidDirectory = "/var/run/bacula"

  Maximum Concurrent Jobs = 1

  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3L"         # Console password

  Messages = Daemon

  DirAddress = Adresse IP

}

JobDefs {

  Name = "DefaultJob"

  Type = Backup

  Level = Incremental

  Client = bckp001-fd

  FileSet = "Full Set"

  Schedule = "WeeklyCycle"

  Storage = File

  Messages = Standard

  Pool = Default

  Full Backup Pool = Full-Pool

  Incremental Backup Pool = Inc-Pool

  Differential Backup Pool = Diff-Pool



  Priority = 10

}





#

# Define the main nightly save backup job

#   By default, this job will back up to disk in

Job {

  Name = Client1

  JobDefs = DefaultJob

  Write Bootstrap = "/var/lib/bacula/Client1.bsr"

  Type = Backup

  Level = Incremental

  FileSet = "Full Set"

  Storage = File

  Pool = Default

  Messages = Standard

}



#Job {

#  Name = "Client2"

#  Client = bckp0012-fd

#  JobDefs = "DefaultJob"

#  Write Bootstrap = "/var/lib/bacula/Client2.bsr"

#}



# Backup the catalog database (after the nightly save)

Job {

  Name = "BackupCatalog"

  JobDefs = "DefaultJob"

  Level = Full

  FileSet="Catalog"

  Schedule = "WeeklyCycleAfterBackup"

  # This creates an ASCII copy of the catalog

  # WARNING!

  # Ubuntu uses make_catalog_backup_awk script for

  # security reasons

  # Replace <CatalogName> with the real Catalog name

  RunBeforeJob = "/usr/bin/awk -f /etc/bacula/scripts/make_catalog_backup_awk -v cat1=MyCatalog /etc/bacula/bacula-dir.conf"

  # This deletes the copy of the catalog

  RunAfterJob  = "/etc/bacula/scripts/delete_catalog_backup"

  Write Bootstrap = "/var/lib/bacula/BackupCatalog.bsr"

  Priority = 11                   # run after main backup

}



#

# Standard Restore template, to be changed by Console program

#  Only one such job is needed for all Jobs/Clients/Storage ...

#

Job {

  Name = "RestoreFiles"

  Type = Restore

  Client=bckp001-fd                

  FileSet="Full Set"                 

  Storage = File                     

  Pool = Default

  Messages = Standard

  Where = /bacula-restores

}





# List of files to be backed up

FileSet {

  Name = "Full Set"

  Include {

    Options {

      signature = MD5

    }

#   

#  Put your list of files here, preceded by 'File =', one per line

#    or include an external list with:

#

#    File = <file-name

#

#  Note: / backs up everything on the root partition.

#    if you have other partitons such as /usr or /home

#    you will probably want to add them too.

#

#  By default this is defined to point to the Bacula build

#    directory to give a reasonable FileSet to backup to

#    disk storage during initial testing.

#

    File = /build/buildd/bacula-2.2.8/debian/tmp-build-sqlite

  }



#

# If you backup the root directory, the following two excluded

#   files can be useful

#

  Exclude {

    File = /proc

    File = /tmp

    File = /.journal

    File = /.fsck

  }

}



#

# When to do the backups, full backup on first sunday of the month,

#  differential (i.e. incremental since full) every other sunday,

#  and incremental backups other days

Schedule {

  Name = "WeeklyCycle"

  Run = Full 1st sun at 23:05

  Run = Differential 2nd-5th sun at 23:05

  Run = Incremental mon-sat at 23:05

}



# This schedule does the catalog. It starts after the WeeklyCycle

Schedule {

  Name = "WeeklyCycleAfterBackup"

  Run = Full sun-sat at 23:10

}



# This is the backup of the catalog

FileSet {

  Name = "Catalog"

  Include {

    Options {

      signature = MD5

    }

    File = /var/lib/bacula/bacula.sql

  }

}



# Client (File Services) to backup

Client {

  Name = bckp001-fd

  Address = bckp001

  FDPort = 9102

  Catalog = MyCatalog

  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cg"          # password for FileDaemon

  File Retention = 30 days            # 30 days

  Job Retention = 6 months            # six months

  AutoPrune = yes                     # Prune expired Jobs/Files

}



#

# Second Client (File Services) to backup

#  You should change Name, Address, and Password before using

#

#Client {

#  Name = bckp0012-fd               

#  Address = bckp0012

#  FDPort = 9102

#  Catalog = MyCatalog

#  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cg2"         # password for FileDaemon 2

#  File Retention = 30 days            # 30 days

#  Job Retention = 6 months            # six months

#  AutoPrune = yes                     # Prune expired Jobs/Files

#}





# Definition of file storage device

Storage {

  Name = File

# Do not use "localhost" here   

  Address = 127.0.0.1

  SDPort = 9103

  Password = Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyj

  Device = FileStorage

  Media Type = File

}







# Definition of DDS tape storage device

#Storage {

#  Name = DDS-4   

#  Do not use "localhost" here

#  Address = bckp001                # N.B. Use a fully qualified name here

#  SDPort = 9103

#  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyj"          # password for Storage daemon

#  Device = DDS-4                      # must be same as Device in Storage daemon

#  Media Type = DDS-4                  # must be same as MediaType in Storage daemon

#  Autochanger = yes                   # enable for autochanger device

#}



# Definition of 8mm tape storage device

#Storage {

#  Name = "8mmDrive"

#  Do not use "localhost" here

#  Address = bckp001                # N.B. Use a fully qualified name here

#  SDPort = 9103

#  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyj"

#  Device = "Exabyte 8mm"

#  MediaType = "8mm"

#}



# Definition of DVD storage device

#Storage {

#  Name = "DVD"

#  Do not use "localhost" here

#  Address = bckp001                # N.B. Use a fully qualified name here

#  SDPort = 9103

#  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyj"

#  Device = "DVD Writer"

#  MediaType = "DVD"

#}





# Generic catalog service

Catalog {

  Name = MyCatalog

  dbname = bacula; DB Address = "localhost"; user = bacula; password = "mot_de_passe_mysql"

}



# Reasonable message delivery -- send most everything to email address

#  and to the console

Messages {

  Name = Standard

#

# NOTE! If you send to two email or more email addresses, you will need

#  to replace the %r in the from field (-f part) with a single valid

#  email address in both the mailcommand and the operatorcommand.

#  What this does is, it sets the email address that emails would display

#  in the FROM field, which is by default the same email as they're being

#  sent to.  However, if you send email to more than one address, then

#  you'll have to set the FROM address manually, to a single address.

#  for example, a 'no-reply@mydomain.com', is better since that tends to

#  tell (most) people that its coming from an automated source.



#

  mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c %l\" %r"

  operatorcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\)
\<%r\>\" -s \"Bacula: Intervention needed for %j\" %r"

  mail = admin@domaine.ext = all, !skipped           

  operator = root@localhost = mount

  console = all, !skipped, !saved

#

# WARNING! the following will create a file that you must cycle from

#          time to time as it will grow indefinitely. However, it will

#          also keep all your messages if they scroll off the console.

#

  append = "/var/lib/bacula/log" = all, !skipped

}





#

# Message delivery for daemon messages (no job).

Messages {

  Name = Daemon

  mailcommand = "/usr/lib/bacula/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"

  mail = admin@domaine.ext = all, !skipped           

  console = all, !skipped, !saved

  append = "/var/lib/bacula/log" = all, !skipped

}







   

# Default pool definition

Pool {

  Name = Default

  Pool Type = Backup

  Recycle = yes                       # Bacula can automatically recycle Volumes

  AutoPrune = yes                     # Prune expired volumes

  Volume Retention = 365 days         # one year

}



# Scratch pool definition

Pool {

  Name = Scratch

  Pool Type = Backup

}



Pool {

  Name = Full-Pool

  Pool Type = Backup

  Recycle = yes           # automatically recycle Volumes

  AutoPrune = yes         # Prune expired volumes

  Volume Retention = 6 months

  Maximum Volume Jobs = 1

  Label Format = Full-

  #  Maximum Volumes = 9

}



Pool {

  Name = Inc-Pool

  Pool Type = Backup

  Recycle = yes           # automatically recycle Volumes

  AutoPrune = yes         # Prune expired volumes

  Volume Retention = 20 days

  Maximum Volume Jobs = 6

  Label Format = Inc-

  Maximum Volumes = 7

}



Pool {

  Name = Diff-Pool

  Pool Type = Backup

  Recycle = yes

  AutoPrune = yes

  Volume Retention = 40 days

  Maximum Volume Jobs = 1

  Label Format = Diff-

  Maximum Volumes = 10

}





#

# Restricted console used by tray-monitor to get the status of the director

#

Console {

  Name = bckp001-mon

  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3L"

  CommandACL = status, .status

}



Schedule {

  Name = Mensuel

  Run = Level=Full Pool=Full-Pool 1st sat at 06:00

  Run = Level=Incremental Pool=Inc-Pool mon-fri at 6:00

}

FileSet {

  Name = Srv002

  Include {

    File = /mnt/Vmware018/Backups/srv002

    Options {

      signature = MD5

      compression=GZIP

    }

  }

}

Job {

  Name = Backup_Srv002

  Type = Backup

  Level = Incremental

  Client = bckp001-fd

  FileSet = Srv002

  Schedule = Mensuel

  Storage = File

  Pool = Inc-Pool

  Messages = Standard

}

Client {

  Name = stockage-mon

  Password = Cv70F6pf1t6pBopT4vQOnigDrR0v3L

  Address = Adresse_IP

  FDPort = 9102

  Catalog = MyCatalog

  File Retention = 30 days

  Job Retention = 6 months

}

FileSet {

  Name = "Donnees sur Stockage"

  Include {

    File = E:/

    Options {

      signature = MD5

    }

  }

}

Job {

  Name = Backup_Stockage

  Type = Backup

  Level = Incremental

  Client = stockage-mon

  FileSet = "Donnees sur Stockage"

  Schedule = Mensuel_23H00

  Storage = File

  Pool = Inc-Pool

  Messages = Standard

}

Schedule {

  Name = Mensuel_23H00

  Run = Level=Full Pool=Inc-Pool 1st sat at 00:00

  Run = Level=Incremental Pool=Inc-Pool mon-fri at 23:00

}

bacula-fd.conf

# Default  Bacula File Daemon Configuration file

#

#  For Bacula release 2.2.8 (26 January 2008) -- debian lenny/sid

#

# There is not much to change here except perhaps the

# File daemon Name to

#



#

# List Directors who are permitted to contact this File daemon

#

Director {

  Name = bckp001-dir

  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cg"

}



#

# Restricted Director, used by tray-monitor to get the

#   status of the file daemon

#

Director {

  Name = bckp001-mon

  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cg"

  Monitor = yes

}



#

# "Global" File daemon configuration specifications

#

FileDaemon {                          # this is me

  Name = bckp001-fd

  FDport = 9102                  # where we listen for the director

  WorkingDirectory = /var/lib/bacula

  Pid Directory = /var/run/bacula

  Maximum Concurrent Jobs = 20

  FDAddress = Adresse_IP

}



# Send all messages except skipped files back to Director

Messages {

  Name = Standard

  director = bckp001-dir = all, !skipped, !restored

}

bacula-sd.conf

# Default Bacula Storage Daemon Configuration file

#

#  For Bacula release 2.2.8 (26 January 2008) -- debian lenny/sid

#

# You may need to change the name of your tape drive

#   on the "Archive Device" directive in the Device

#   resource.  If you change the Name and/or the

#   "Media Type" in the Device resource, please ensure

#   that dird.conf has corresponding changes.

#



Storage {                             # definition of myself

  Name = bckp001-sd

  SDport = 9103

  WorkingDirectory = /var/lib/bacula

  Pid Directory = "/var/run/bacula"

  Maximum Concurrent Jobs = 20

  SDAddress = 127.0.0.1

}



#

# List Directors who are permitted to contact Storage daemon

#

Director {

  Name = bckp001-dir

  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyj"

}



#

# Restricted Director, used by tray-monitor to get the

#   status of the storage daemon

#

Director {

  Name = bckp001-mon

  Password = "Cv70F6pf1t6pBopT4vQOnigDrR0v3LT3Cgkiyj"

  Monitor = yes

}



#

# Devices supported by this Storage daemon

# To connect, the Director's bacula-dir.conf must have the

#  same Name and MediaType.

#



Device {

  Name = FileStorage

  Media Type = File

  Archive Device = /home/Machines/Bacula

  LabelMedia = yes

  Random Access = yes

  AutomaticMount = yes

  RemovableMedia = no

  AlwaysOpen = yes

}



#

# An autochanger device with two drives

#

#Autochanger {

#  Name = Autochanger

#  Device = Drive-1

#  Device = Drive-2

#  Changer Command = "/etc/bacula/scripts/mtx-changer %c %o %S %a %d"

#  Changer Device = /dev/sg0

#}



#Device {

#  Name = Drive-1                      #

#  Drive Index = 0

#  Media Type = DLT-8000

#  Archive Device = /dev/nst0

#  AutomaticMount = yes;               # when device opened, read it

#  AlwaysOpen = yes;

#  RemovableMedia = yes;

#  RandomAccess = no;

#  AutoChanger = yes

#  #

#  # Enable the Alert command only if you have the mtx package loaded

#  # Note, apparently on some systems, tapeinfo resets the SCSI controller

#  #  thus if you turn this on, make sure it does not reset your SCSI

#  #  controller.  I have never had any problems, and smartctl does

#  #  not seem to cause such problems.

#  #

#  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"

#  If you have smartctl, enable this, it has more info than tapeinfo

#  Alert Command = "sh -c 'smartctl -H -l error %c'" 

#}



#Device {

#  Name = Drive-2                      #

#  Drive Index = 1

#  Media Type = DLT-8000

#  Archive Device = /dev/nst1

#  AutomaticMount = yes;               # when device opened, read it

#  AlwaysOpen = yes;

#  RemovableMedia = yes;

#  RandomAccess = no;

#  AutoChanger = yes

#  # Enable the Alert command only if you have the mtx package loaded

#  Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"

#  If you have smartctl, enable this, it has more info than tapeinfo

#  Alert Command = "sh -c 'smartctl -H -l error %c'" 

#}



#

# A Linux or Solaris tape drive

#

#Device {

#  Name = DDS-4                        #

#  Media Type = DDS-4

#  Archive Device = /dev/nrst0

#  AutomaticMount = yes;               # when device opened, read it

#  AlwaysOpen = yes;

#  RemovableMedia = yes;

#  RandomAccess = no;

## Changer Command = "/etc/bacula/scripts/mtx-changer %c %o %S %a %d"

## Changer Device = /dev/sg0

## AutoChanger = yes

#  # Enable the Alert command only if you have the mtx package loaded

## Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"

## If you have smartctl, enable this, it has more info than tapeinfo

## Alert Command = "sh -c 'smartctl -H -l error %c'" 

#}



#

# A FreeBSD tape drive

#

#Device {

#  Name = DDS-4

#  Description = "DDS-4 for FreeBSD"

#  Media Type = DDS-4

#  Archive Device = /dev/nsa1

#  AutomaticMount = yes;               # when device opened, read it

#  AlwaysOpen = yes

#  Offline On Unmount = no

#  Hardware End of Medium = no

#  BSF at EOM = yes

#  Backward Space Record = no

#  Fast Forward Space File = no

#  TWO EOF = yes

#  If you have smartctl, enable this, it has more info than tapeinfo

#  Alert Command = "sh -c 'smartctl -H -l error %c'" 

#}



#

# A OnStream tape drive.

# You need the kernel osst driver 0.9.14 or later, and

#   do "mt -f /dev/nosst0 defblksize 32768" once as root.

#

#Device {

#  Name = OnStream

#  Description = "OnStream drive on Linux"

#  Media Type = OnStream

#  Archive Device = /dev/nrst0

#  AutomaticMount = yes;               # when device opened, read it

#  AlwaysOpen = yes

#  Offline On Unmount = no

## The min/max blocksizes of 32768 are *required*

#  Minimum Block Size = 32768

#  Maximum Block Size = 32768

#  If you have smartctl, enable this, it has more info than tapeinfo

#  Alert Command = "sh -c 'smartctl -H -l error %c'" 

#}

 

#

# A DVD device

#

#Device {

#  Name = "DVD Writer"

#  Media Type = DVD

#  Device Type = DVD

#  Archive Device = /dev/hdc

#  LabelMedia = yes;                   # lets Bacula label unlabeled media

#  Random Access = Yes;

#  AutomaticMount = yes;               # when device opened, read it

#  RemovableMedia = yes;

#  AlwaysOpen = no;

#  MaximumPartSize = 800M;

#  RequiresMount = yes;

#  MountPoint = /mnt/cdrom;

#  MountCommand = "/bin/mount -t iso9660 -o ro %a %m";

#  UnmountCommand = "/bin/umount %m";

#  SpoolDirectory = /tmp/backup;

#  WritePartCommand = "/etc/bacula/dvd-handler %a write %e %v"

#  FreeSpaceCommand = "/etc/bacula/dvd-handler %a free"

#}



#

# For OpenBSD OS >= 3.6

#

#Device {

#  Name = DDS-3

#  Media Type = DDS-3

#  Archive Device = /dev/nrst0

#  Use MTIOCGET= no

#  BSF at EOM = yes

#  TWO EOF = no

#  AutomaticMount = yes;

#  AlwaysOpen = yes;

#  RemovableMedia = yes;

#  RandomAccess = no;

#  If you have smartctl, enable this, it has more info than tapeinfo

#  Alert Command = "sh -c 'smartctl -H -l error %c'" 

#}



#

# A very old Exabyte with no end of media detection

#

#Device {

#  Name = "Exabyte 8mm"

#  Media Type = "8mm"

#  Archive Device = /dev/nrst0

#  Hardware end of medium = No;

#  AutomaticMount = yes;               # when device opened, read it

#  AlwaysOpen = Yes;

#  RemovableMedia = yes;

#  RandomAccess = no;

#  If you have smartctl, enable this, it has more info than tapeinfo

#  Alert Command = "sh -c 'smartctl -H -l error %c'" 

#}



#

# Send all messages to the Director,

# mount messages also are sent to the email address

#

Messages {

  Name = Standard

  director = bckp001-dir = all

}

Fileset pour un client Windows

FileSet {

  Name = "Windows Set"

  Include {

    Options {

       wild = *.obj

       wild = *.exe

       exclude = yes

     }

     File = "c:/My Documents"

  }

}

Installation du client sur une station Windows

http://www.bacula.org/fr/rel-manual/..._ChapterStart7

bacula-fd.conf d'un client

# Default  Bacula File Daemon Configuration file

#

#  For Bacula release 2.2.8 (26 January 2008) -- debian lenny/sid

#

# There is not much to change here except perhaps the

# File daemon Name to

#



#

# List Directors who are permitted to contact this File daemon

#

Director {

  Name = Nom_du_serveur_Bacula

  Password = "Mot de passe"

}



#

# Restricted Director, used by tray-monitor to get the

#   status of the file daemon

#

Director {

  Name = Nom_du_monitor_Bacula

  Password = "Mot de pase"

  Monitor = yes

}





#

# "Global" File daemon configuration specifications

#

FileDaemon {                          # this is me

  Name = vmware020-fd

  FDport = 9102                  # where we listen for the director

  WorkingDirectory = /var/lib/bacula

  Pid Directory = /var/run/bacula

  Maximum Concurrent Jobs = 20

}



# Send all messages except skipped files back to Director

Messages {

  Name = Standard

  director = vmware020-dir = all, !skipped, !restored

}

Installer Bacula-web

Introduction

Cette interface full-web permet un reporting des sauvegardes

Installation

apt-get install apache2 php5 gettext php5-gd php-db php5-mysql

Télechargez http://sourceforge.net/projects/bacu...guy-xxx.tar.gz

Décompressez le et déplacez le dossier bacula-web sur le serveur.

Editez le fichier bacula.conf pour le connecter au serveur mysql

Dans le fichier /etc/php5/apache2/php.ini pensez à activer les extensions :

extension=mysql.so
extension=gd.so

Redémarrez le serveur web.

/etc/init.d/apache2 restart

Exemple de configuration d'un Pool de sauvegarde Bacula

Nom : Pool_Imprimantes

Type : Backup

Nombre de jobs maxi par fichier de sauvegarde : 1  (Recrée un nouveau fichier à chaque sauvegarde)

Historique de sauvegardes : 14 jours

Recycle = yes : Il supprime les fichiers antérieurs à 14 jours.

AutoPrune = Yes : Il nettoie la base de donnée pour supprimer les sauvegardes antérieures à 14 jours.

Label Format : Permet un label automatique avec un nom prédéfini (ici, Imprimantes-XXXX)

Pool {

  Name = Pool_Imprimantes

  Pool Type = Backup

  Maximum Volume Jobs = 1

  Volume Retention = 14 days

  Recycle = yes

  AutoPrune = yes

  Label Format = Imprimantes-

}

Restauration

Commandes :

bacula-console

restore

 howto05_small.pngVous en pensez quoi ?


 

 

 

 
 
Images (0)
 
Commentaires (0)
Vous devez être connecté pour poster un commentaire.