commun:bacula
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| commun:bacula [2018/11/25 14:39] – créée francois | commun:bacula [2019/04/27 08:59] (Version actuelle) – [status director] francois | ||
|---|---|---|---|
| Ligne 7: | Ligne 7: | ||
| Ne pas chercher à configurer le client postgresql. | Ne pas chercher à configurer le client postgresql. | ||
| sudo apt install bacula-director-sqlite3 | sudo apt install bacula-director-sqlite3 | ||
| + | |||
| + | ===== Démarrage ===== | ||
| + | |||
| + | sudo systemctl start bacula-director.service | ||
| + | sudo systemctl start bacula-fd.service | ||
| + | sudo systemctl start bacula-sd.service | ||
| + | |||
| + | ===== Configuration ===== | ||
| + | |||
| + | First mount the backup disk (see [[commun: | ||
| + | |||
| + | Bacula needs a backup directory for storing backup archives and restore directory where restored files will be placed. So, if your system has multiple partitions then make sure to create the directories on one of large partition. | ||
| + | |||
| + | Run the commands below to create new directories for both backup and restore points. | ||
| + | mkdir -p / | ||
| + | |||
| + | Set the ownership and then permissions to the above directories using below commands. | ||
| + | chown -R bacula: | ||
| + | chmod -R 700 / | ||
| + | |||
| + | <file 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 | ||
| + | # | ||
| + | # | ||
| + | # For Bacula release 9.0.6 (20 November 2017) -- ubuntu 18.04 | ||
| + | # | ||
| + | # You might also want to change the default email address | ||
| + | # from root to your address. | ||
| + | # | ||
| + | # | ||
| + | # Copyright (C) 2000-2017 Kern Sibbald | ||
| + | # License: BSD 2-Clause; see file LICENSE-FOSS | ||
| + | # | ||
| + | |||
| + | Director { # define myself | ||
| + | Name = cahute-dir | ||
| + | DIRport = 9101 # where we listen for UA connections | ||
| + | QueryFile = "/ | ||
| + | WorkingDirectory = "/ | ||
| + | PidDirectory = "/ | ||
| + | Maximum Concurrent Jobs = 20 | ||
| + | Password = " | ||
| + | Messages = Daemon | ||
| + | DirAddress = 127.0.0.1 | ||
| + | } | ||
| + | |||
| + | JobDefs { | ||
| + | Name = " | ||
| + | Type = Backup | ||
| + | Level = Incremental | ||
| + | Client = cahute-fd | ||
| + | FileSet = "Full Set" | ||
| + | Schedule = " | ||
| + | Storage = File1 | ||
| + | Messages = Standard | ||
| + | Pool = File | ||
| + | SpoolAttributes = yes | ||
| + | Priority = 10 | ||
| + | Write Bootstrap = "/ | ||
| + | } | ||
| + | |||
| + | |||
| + | # | ||
| + | # Define the main nightly save backup job | ||
| + | # By default, this job will back up to disk in / | ||
| + | Job { | ||
| + | Name = " | ||
| + | JobDefs = " | ||
| + | } | ||
| + | |||
| + | # Backup the catalog database (after the nightly save) | ||
| + | Job { | ||
| + | Name = " | ||
| + | JobDefs = " | ||
| + | Level = Full | ||
| + | FileSet=" | ||
| + | Schedule = " | ||
| + | # This creates an ASCII copy of the catalog | ||
| + | # Arguments to make_catalog_backup.pl are: | ||
| + | # make_catalog_backup.pl < | ||
| + | RunBeforeJob = "/ | ||
| + | # This deletes the copy of the catalog | ||
| + | RunAfterJob | ||
| + | Write Bootstrap = "/ | ||
| + | Priority = 11 # run after main backup | ||
| + | } | ||
| + | |||
| + | # | ||
| + | # Standard Restore template, to be changed by Console program | ||
| + | # Only one such job is needed for all Jobs/ | ||
| + | # | ||
| + | Job { | ||
| + | Name = " | ||
| + | Type = Restore | ||
| + | Client=cahute-fd | ||
| + | Storage = File1 | ||
| + | # The FileSet and Pool directives are not used by Restore Jobs | ||
| + | # but must not be removed | ||
| + | FileSet=" | ||
| + | Pool = File | ||
| + | Messages = Standard | ||
| + | Where = / | ||
| + | } | ||
| + | |||
| + | |||
| + | # 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 = < | ||
| + | # | ||
| + | # Note: / backs up everything on the root partition. | ||
| + | # if you have other partitions such as /usr or /home | ||
| + | # you will probably want to add them too. | ||
| + | # | ||
| + | # By default this is defined to point to the Bacula binary | ||
| + | # directory to give a reasonable FileSet to backup to | ||
| + | # disk storage during initial testing. | ||
| + | # | ||
| + | File = / | ||
| + | } | ||
| + | |||
| + | # | ||
| + | # If you backup the root directory, the following two excluded | ||
| + | # files can be useful | ||
| + | # | ||
| + | Exclude { | ||
| + | File = / | ||
| + | File = / | ||
| + | File = /proc | ||
| + | File = /tmp | ||
| + | File = /sys | ||
| + | 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 = " | ||
| + | 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 = " | ||
| + | Run = Full sun-sat at 23:10 | ||
| + | } | ||
| + | |||
| + | # This is the backup of the catalog | ||
| + | FileSet { | ||
| + | Name = " | ||
| + | Include { | ||
| + | Options { | ||
| + | signature = MD5 | ||
| + | } | ||
| + | File = "/ | ||
| + | } | ||
| + | } | ||
| + | |||
| + | # Client (File Services) to backup | ||
| + | Client { | ||
| + | Name = cahute-fd | ||
| + | Address = localhost | ||
| + | FDPort = 9102 | ||
| + | Catalog = MyCatalog | ||
| + | Password = " | ||
| + | File Retention = 60 days # 60 days | ||
| + | Job Retention = 6 months | ||
| + | AutoPrune = yes # Prune expired Jobs/Files | ||
| + | } | ||
| + | |||
| + | # Definition of file Virtual Autochanger device | ||
| + | Autochanger { | ||
| + | Name = File1 | ||
| + | # Do not use " | ||
| + | Address = localhost | ||
| + | SDPort = 9103 | ||
| + | Password = " | ||
| + | Device = FileChgr1 | ||
| + | Media Type = File1 | ||
| + | Maximum Concurrent Jobs = 10 # run up to 10 jobs a the same time | ||
| + | Autochanger = File1 # point to ourself | ||
| + | } | ||
| + | |||
| + | # Generic catalog service | ||
| + | Catalog { | ||
| + | Name = MyCatalog | ||
| + | dbname = " | ||
| + | } | ||
| + | |||
| + | # 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' | ||
| + | # 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 ' | ||
| + | # tell (most) people that its coming from an automated source. | ||
| + | |||
| + | # | ||
| + | mailcommand = "/ | ||
| + | operatorcommand = "/ | ||
| + | mail = root = all, !skipped | ||
| + | operator = root = 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 = "/ | ||
| + | catalog = all | ||
| + | } | ||
| + | |||
| + | |||
| + | # | ||
| + | # Message delivery for daemon messages (no job). | ||
| + | Messages { | ||
| + | Name = Daemon | ||
| + | mailcommand = "/ | ||
| + | mail = root = all, !skipped | ||
| + | console = all, !skipped, !saved | ||
| + | append = "/ | ||
| + | } | ||
| + | |||
| + | # 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 | ||
| + | Maximum Volume Bytes = 50G # Limit Volume size to something reasonable | ||
| + | Maximum Volumes = 100 # Limit number of Volumes in Pool | ||
| + | } | ||
| + | |||
| + | # File Pool definition | ||
| + | Pool { | ||
| + | Name = File | ||
| + | Pool Type = Backup | ||
| + | Recycle = yes # Bacula can automatically recycle Volumes | ||
| + | AutoPrune = yes # Prune expired volumes | ||
| + | Volume Retention = 365 days # one year | ||
| + | Maximum Volume Bytes = 50G # Limit Volume size to something reasonable | ||
| + | Maximum Volumes = 100 # Limit number of Volumes in Pool | ||
| + | Label Format = " | ||
| + | } | ||
| + | |||
| + | |||
| + | # Scratch pool definition | ||
| + | Pool { | ||
| + | Name = Scratch | ||
| + | Pool Type = Backup | ||
| + | } | ||
| + | |||
| + | # | ||
| + | # Restricted console used by tray-monitor to get the status of the director | ||
| + | # | ||
| + | Console { | ||
| + | Name = cahute-mon | ||
| + | Password = " | ||
| + | CommandACL = status, .status | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | <file conf bacula-sd.conf> | ||
| + | # | ||
| + | # Default Bacula Storage Daemon Configuration file | ||
| + | # | ||
| + | # For Bacula release 9.0.6 (20 November 2017) -- ubuntu 18.04 | ||
| + | # | ||
| + | # You may need to change the name of your tape drive | ||
| + | # on the " | ||
| + | # | ||
| + | # " | ||
| + | # that dird.conf has corresponding changes. | ||
| + | # | ||
| + | # | ||
| + | # Copyright (C) 2000-2017 Kern Sibbald | ||
| + | # License: BSD 2-Clause; see file LICENSE-FOSS | ||
| + | # | ||
| + | |||
| + | Storage { # definition of myself | ||
| + | Name = cahute-sd | ||
| + | SDPort = 9103 # Director' | ||
| + | WorkingDirectory = "/ | ||
| + | Pid Directory = "/ | ||
| + | Plugin Directory = "/ | ||
| + | Maximum Concurrent Jobs = 20 | ||
| + | SDAddress = 127.0.0.1 | ||
| + | } | ||
| + | |||
| + | # | ||
| + | # List Directors who are permitted to contact Storage daemon | ||
| + | # | ||
| + | Director { | ||
| + | Name = cahute-dir | ||
| + | Password = " | ||
| + | } | ||
| + | |||
| + | # | ||
| + | # Restricted Director, used by tray-monitor to get the | ||
| + | # | ||
| + | # | ||
| + | Director { | ||
| + | Name = cahute-mon | ||
| + | Password = " | ||
| + | Monitor = yes | ||
| + | } | ||
| + | |||
| + | # | ||
| + | # Note, for a list of additional Device templates please | ||
| + | # see the directory < | ||
| + | # Or follow the following link: | ||
| + | # http:// | ||
| + | # | ||
| + | |||
| + | # | ||
| + | # Devices supported by this Storage daemon | ||
| + | # To connect, the Director' | ||
| + | # same Name and MediaType. | ||
| + | # | ||
| + | |||
| + | # | ||
| + | # Define a Virtual autochanger | ||
| + | # | ||
| + | Autochanger { | ||
| + | Name = FileChgr1 | ||
| + | Device = FileChgr1-Dev1 #, FileChgr1-Dev2 | ||
| + | Changer Command = "" | ||
| + | Changer Device = /dev/null | ||
| + | } | ||
| + | |||
| + | Device { | ||
| + | Name = FileChgr1-Dev1 | ||
| + | Media Type = File1 | ||
| + | Archive Device = / | ||
| + | LabelMedia = yes; # lets Bacula label unlabeled media | ||
| + | Random Access = Yes; | ||
| + | AutomaticMount = yes; # when device opened, read it | ||
| + | RemovableMedia = no; | ||
| + | AlwaysOpen = no; | ||
| + | Maximum Concurrent Jobs = 5 | ||
| + | } | ||
| + | |||
| + | # | ||
| + | # Send all messages to the Director, | ||
| + | # mount messages also are sent to the email address | ||
| + | # | ||
| + | Messages { | ||
| + | Name = Standard | ||
| + | director = cahute-dir = all | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | <file conf bacula-fd.conf> | ||
| + | # | ||
| + | # Default | ||
| + | # | ||
| + | # For Bacula release 9.0.6 (20 November 2017) -- ubuntu 18.04 | ||
| + | # | ||
| + | # There is not much to change here except perhaps the | ||
| + | # File daemon Name to | ||
| + | # | ||
| + | # | ||
| + | # Copyright (C) 2000-2015 Kern Sibbald | ||
| + | # License: BSD 2-Clause; see file LICENSE-FOSS | ||
| + | # | ||
| + | |||
| + | # | ||
| + | # List Directors who are permitted to contact this File daemon | ||
| + | # | ||
| + | Director { | ||
| + | Name = cahute-dir | ||
| + | Password = " | ||
| + | } | ||
| + | |||
| + | # | ||
| + | # Restricted Director, used by tray-monitor to get the | ||
| + | # | ||
| + | # | ||
| + | Director { | ||
| + | Name = cahute-mon | ||
| + | Password = " | ||
| + | Monitor = yes | ||
| + | } | ||
| + | |||
| + | # | ||
| + | # " | ||
| + | # | ||
| + | FileDaemon { # this is me | ||
| + | Name = cahute-fd | ||
| + | FDport = 9102 # where we listen for the director | ||
| + | WorkingDirectory = / | ||
| + | Pid Directory = /run/bacula | ||
| + | Maximum Concurrent Jobs = 20 | ||
| + | Plugin Directory = / | ||
| + | FDAddress = 127.0.0.1 | ||
| + | } | ||
| + | |||
| + | # Send all messages except skipped files back to Director | ||
| + | Messages { | ||
| + | Name = Standard | ||
| + | director = cahute-dir = all, !skipped, !restored | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== Commandes bconsole ===== | ||
| + | |||
| + | ==== label ==== | ||
| + | This command is used to label physical volumes. The full form of this command is: | ||
| + | |||
| + | label storage=< | ||
| + | |||
| + | If you leave out any part, you will be prompted for it. The media type is automatically taken from the Storage resource definition that you supply. Once the necessary information is obtained, the Console program contacts the specified Storage daemon and requests that the Volume be labeled. If the Volume labeling is successful, the Console program will create a Volume record in the appropriate Pool. | ||
| + | |||
| + | The Volume name is restricted to letters, numbers, and the special characters hyphen (-), underscore (_), colon (:), and period (.). All other characters including a space are invalid. This restriction is to ensure good readability of Volume names to reduce operator errors. | ||
| + | |||
| + | Please note, when labeling a blank tape, Bacula will get read I/O error when it attempts to ensure that the tape is not already labeled. If you wish to avoid getting these messages, please write an EOF mark on your tape before attempting to label it: | ||
| + | |||
| + | mt rewind | ||
| + | mt weof | ||
| + | |||
| + | The label command can fail for a number of reasons: | ||
| + | |||
| + | - The Volume name you specify is already in the Volume database. | ||
| + | - The Storage daemon has a tape or other Volume already mounted on the device, in which case you must unmount the device, insert a blank tape, then do the label command. | ||
| + | - The Volume in the device is already a Bacula labeled Volume. (Bacula will never relabel a Bacula labeled Volume unless it is recycled and you use the relabel command). | ||
| + | - There is no Volume in the drive. | ||
| + | |||
| + | There are two ways to relabel a volume that already has a Bacula label. The brute force method is to write an end of file mark on the tape using the system mt program, something like the following: | ||
| + | |||
| + | mt -f /dev/st0 rewind | ||
| + | mt -f /dev/st0 weof | ||
| + | |||
| + | For a disk volume, you would manually delete the Volume. | ||
| + | |||
| + | Then you use the label command to add a new label. However, this could leave traces of the old volume in the catalog. | ||
| + | |||
| + | The preferable method to relabel a Volume is to first purge the volume, either automatically, | ||
| + | |||
| + | If your autochanger has barcode labels, you can label all the Volumes in your autochanger one after another by using the label barcodes command. For each tape in the changer containing a barcode, Bacula will mount the tape and then label it with the same name as the barcode. An appropriate Media record will also be created in the catalog. Any barcode that begins with the same characters as specified on the " | ||
| + | |||
| + | < | ||
| + | Pool { | ||
| + | Name ... | ||
| + | Cleaning Prefix = " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Any slot containing a barcode of CLNxxxx will be treated as a cleaning tape and will not be mounted. Note, the full form of the command is: | ||
| + | |||
| + | label storage=xxx pool=yyy slots=1-5, | ||
| + | |||
| + | ==== status ==== | ||
| + | |||
| + | Commande pour lister les volumes | ||
| + | list volumes | ||
| + | ==== messages ==== | ||
| + | |||
| + | |||
commun/bacula.1543156786.txt.gz · Dernière modification : (modification externe)
