diff --git a/manuals/en/main/Makefile b/manuals/en/main/Makefile index 94f0c7b..6822205 100644 --- a/manuals/en/main/Makefile +++ b/manuals/en/main/Makefile @@ -72,8 +72,8 @@ autogenerated/bareos-dir-config-schema.json: # generate config-schema file. # bareos-dir requires a valid configuration file for that. # Test if creation succeeded, if yes, redirct output to a json file. - if $(BAREOS_DIR) -c $$PWD/etc/bareos-dir.conf -x; then \ - $(BAREOS_DIR) -c $$PWD/etc/bareos-dir.conf -x > autogenerated/bareos-dir-config-schema.json; \ + if $(BAREOS_DIR) -x; then \ + $(BAREOS_DIR) -x > autogenerated/bareos-dir-config-schema.json; \ fi autogenerated/*.tex: autogenerated/bareos-dir-config-schema.json diff --git a/manuals/en/main/bareos-manual-main-reference.tex b/manuals/en/main/bareos-manual-main-reference.tex index 95a6304..689f72d 100644 --- a/manuals/en/main/bareos-manual-main-reference.tex +++ b/manuals/en/main/bareos-manual-main-reference.tex @@ -47,6 +47,9 @@ \usepackage[norefs,nocites]{refcheck} \usepackage{textcomp} +% \ifcsdef: check if a label is defined +%\usepackage{etoolbox} + \usepackage{bareos} \makeindex diff --git a/manuals/en/main/etc/bareos-dir.conf b/manuals/en/main/etc/bareos-dir.conf deleted file mode 100644 index 61a8bb9..0000000 --- a/manuals/en/main/etc/bareos-dir.conf +++ /dev/null @@ -1,335 +0,0 @@ -# -# Default Bareos Director configuration file for disk-only backup -# (C) 2013-2014 Bareos GmbH & Co.KG -# -# Each configuration item has a reference number that shows -# where this property can be changed in the configuration file. -# Search for the number to find the correct line. -# -# You have to configure the following accoring to your environment: -# -# (#01)Email Address for bareos disaster recovery. -# Specify a mailaddress outside of your backupserver. -# There will be one mail per day. -# -# (#02)Email Address for bareos reports. (Mail Command) -# This mail address will recieve a report about each backup job. -# It will be sent after the backupjob is complete. -# Has to be configured twice ("Standard" and "Daemon" Message Ressources) -# -# (#03)Email Address for bareos operator. (Operator Command) -# This mail address will recieve a mail immediately when the -# bareos system needs an operator intervention. -# May be the same address as in (#02) -# -# -# This disk-only setup stores all data into /var/lib/bareos/storage -# -# The preconfigured backup scheme is as follows: -# -# Full Backups are done on first Saturday at 21:00 (#04) -# Full Backups are written into the "Full" Pool (#05) -# Full Backups are kept for 365 Days (#06) -# -# Differential Backups are done on 2nd to 5th Saturday at 21:00 (#07) -# Differential Backups are written into the "Differential" Pool (#08) -# Differential Backups are kept for 90 Days (#09) -# -# Incremental Backups are done monday to friday at 21:00 (#10) -# Incremental Backups are written into the "Incremental" Pool (#11) -# Incremental Backups are kept for 30 Days (#12) -# -# What you also have to do is to change the default fileset (#13) -# to either one of the demo filesets given or create our own fileset. -# -# -# -# For Bareos release 14.3.0 (21 August 2014) -- suse openSUSE 12.2 (x86_64) -# -# -Director { # define myself - Name = bareos-dir - QueryFile = "/usr/lib/bareos/scripts/query.sql" - Maximum Concurrent Jobs = 10 - Password = "password" # Console password - Messages = Daemon - Auditing = yes - - # remove comment in next line to load dynamic backends from specified directory - # Backend Directory = /usr/lib64/bareos/backends - - # remove comment from "Plugin Directory" to load plugins from specified directory. - # if "Plugin Names" is defined, only the specified plugins will be loaded, - # otherwise all director plugins (*-dir.so) from the "Plugin Directory". - # - # Plugin Directory = /usr/lib64/bareos/plugins - # Plugin Names = "" -} - -JobDefs { - Name = "DefaultJob" - Type = Backup - Level = Incremental - Client = bareos-fd - FileSet = "SelfTest" # selftest fileset (#13) - Schedule = "WeeklyCycle" - Storage = File - Messages = Standard - Pool = Incremental - Priority = 10 - Write Bootstrap = "/var/lib/bareos/%c.bsr" - Full Backup Pool = Full # write Full Backups into "Full" Pool (#05) - Differential Backup Pool = Differential # write Diff Backups into "Differential" Pool (#08) - Incremental Backup Pool = Incremental # write Incr Backups into "Incremental" Pool (#11) -} - -# -# Define the main nightly save backup job -# By default, this job will back up to disk in /var/lib/bareos/storage -Job { - Name = "BackupClient1" - JobDefs = "DefaultJob" -} - -# -# 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 - # Arguments to make_catalog_backup.pl are: - # make_catalog_backup.pl - RunBeforeJob = "/usr/lib/bareos/scripts/make_catalog_backup.pl MyCatalog" - - # This deletes the copy of the catalog - RunAfterJob = "/usr/lib/bareos/scripts/delete_catalog_backup" - - # This sends the bootstrap via mail for disaster recovery. - # Should be sent to another system, please change recipient accordingly - Write Bootstrap = "|/usr/bin/bsmtp -h localhost -f \"\(Bareos\) \" -s \"Bootstrap for Job %j\" root@localhost" # (#01) - 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=bareos-fd - FileSet = "Linux All" - Storage = File - Pool = Incremental - Messages = Standard - Where = /tmp/bareos-restores -} - - -FileSet { - Name = "Windows All Drives" - Enable VSS = yes - Include { - Options { - Signature = MD5 - Drive Type = fixed - IgnoreCase = yes - WildFile = "[A-Z]:/pagefile.sys" - WildDir = "[A-Z]:/RECYCLER" - WildDir = "[A-Z]:/$RECYCLE.BIN" - WildDir = "[A-Z]:/System Volume Information" - Exclude = yes - } - File = / - } -} - - -FileSet { - Name = "Linux All" - Include { - Options { - Signature = MD5 # calculate md5 checksum per file - One FS = No # change into other filessytems - FS Type = ext2 # filesystems of given types will be backed up - FS Type = ext3 # others will be ignored - FS Type = ext4 - FS Type = xfs - FS Type = reiserfs - FS Type = jfs - FS Type = btrfs - } - File = / - } - # Things that usually have to be excluded - # You have to exclude /var/lib/bareos/storage - # on your bareos server - Exclude { - File = /var/lib/bareos - File = /var/lib/bareos/storage - File = /proc - File = /tmp - File = /.journal - File = /.fsck - } - -} - -# fileset just to backup some files for selftest -FileSet { - Name = "SelfTest" - Include { - Options { - Signature = MD5 # calculate md5 checksum per file - } - File = "/usr/sbin" - } -} - -Schedule { - Name = "WeeklyCycle" - Run = Full 1st sat at 21:00 # (#04) - Run = Differential 2nd-5th sat at 21:00 # (#07) - Run = Incremental mon-fri at 21:00 # (#10) -} - -# This schedule does the catalog. It starts after the WeeklyCycle -Schedule { - Name = "WeeklyCycleAfterBackup" - Run = Full mon-fri at 21:10 -} - -# This is the backup of the catalog -FileSet { - Name = "Catalog" - Include { - Options { - signature = MD5 - } - File = "/var/lib/bareos/bareos.sql" # database dump - File = "/etc/bareos" # configuration - } -} - -# Client (File Services) to backup -Client { - Name = bareos-fd - Address = bareos - Password = "password-fd" # password for FileDaemon - File Retention = 30 days # 30 days - Job Retention = 6 months # six months - AutoPrune = no # Prune expired Jobs/Files -} - -# -# Definition of file storage device -# -Storage { - Name = File -# Do not use "localhost" here - Address = bareos # N.B. Use a fully qualified name here - Password = "password-sd" - Device = FileStorage - Media Type = File -} - -# -# Generic catalog service -# -Catalog { - Name = MyCatalog - dbdriver = "sqlite3" - dbname = "bareos" - dbuser = "bareos" - dbpassword = "" -} - -# -# Reasonable message delivery -- send most everything to email address and to the console -# -Messages { - Name = Standard - mailcommand = "/usr/bin/bsmtp -h localhost -f \"\(Bareos\) \<%r\>\" -s \"Bareos: %t %e of %c %l\" %r" - operatorcommand = "/usr/bin/bsmtp -h localhost -f \"\(Bareos\) \<%r\>\" -s \"Bareos: Intervention needed for %j\" %r" - mail = root@localhost = all, !skipped, !audit # (#02) - operator = root@localhost = mount # (#03) - console = all, !skipped, !saved, !audit - append = "/var/log/bareos/bareos.log" = all, !skipped, !audit - catalog = all, !audit -} - -# -# Message delivery for daemon messages (no job). -# -Messages { - Name = Daemon - mailcommand = "/usr/bin/bsmtp -h localhost -f \"\(Bareos\) \<%r\>\" -s \"Bareos daemon message\" %r" - mail = root@localhost = all, !skipped, !audit # (#02) - console = all, !skipped, !saved, !audit - append = "/var/log/bareos/bareos.log" = all, !skipped, !audit - append = "/var/log/bareos/bareos-audit.log" = audit -} - -# -# Full Pool definition -# -Pool { - Name = Full - Pool Type = Backup - Recycle = yes # Bareos can automatically recycle Volumes - AutoPrune = yes # Prune expired volumes - Volume Retention = 365 days # How long should the Full Backups be kept? (#06) - Maximum Volume Bytes = 50G # Limit Volume size to something reasonable - Maximum Volumes = 100 # Limit number of Volumes in Pool - Label Format = "Full-" # Volumes will be labeled "Full-" -} - -# -# Differential Pool definition -# -Pool { - Name = Differential - Pool Type = Backup - Recycle = yes # Bareos can automatically recycle Volumes - AutoPrune = yes # Prune expired volumes - Volume Retention = 90 days # How long should the Differential Backups be kept? (#09) - Maximum Volume Bytes = 10G # Limit Volume size to something reasonable - Maximum Volumes = 100 # Limit number of Volumes in Pool - Label Format = "Differential-" # Volumes will be labeled "Differential-" -} - -# -# Incremental Pool definition -# -Pool { - Name = Incremental - Pool Type = Backup - Recycle = yes # Bareos can automatically recycle Volumes - AutoPrune = yes # Prune expired volumes - Volume Retention = 30 days # How long should the Incremental Backups be kept? (#12) - Maximum Volume Bytes = 1G # Limit Volume size to something reasonable - Maximum Volumes = 100 # Limit number of Volumes in Pool - Label Format = "Incremental-" # Volumes will be labeled "Incremental-" -} - -# -# Scratch pool definition -# -Pool { - Name = Scratch - Pool Type = Backup -} - -# -# Restricted console used by tray-monitor to get the status of the director -# -Console { - Name = bareos-mon - Password = "password-mon" - CommandACL = status, .status -} diff --git a/manuals/scripts/generate-resoure-descriptions.py b/manuals/scripts/generate-resoure-descriptions.py index 926d430..1fe0413 100755 --- a/manuals/scripts/generate-resoure-descriptions.py +++ b/manuals/scripts/generate-resoure-descriptions.py @@ -51,37 +51,74 @@ def getResources(self): result += "\\end{itemize}\n" return result + def getStringsWithModifiers(self, text, strings): + strings['text']=strings[text] + if text: + if strings.get('mo'): + return "%(mo)s%(text)s%(mc)s" % ( strings ) + else: + return "%(text)s" % ( strings ) + else: + return "" + + def getLatexDatatypeRef( self, datatype ): + DataType="".join([x.lower().capitalize() for x in datatype.split('_')]) + if DataType == "StringList": + return "\\ifdefined\\dt%(DataType)s \\dt%(DataType)s{,} \\else \\dt{%(DataType)s} \\fi" % { 'DataType': DataType } + else: + return "\\ifdefined\\dt%(DataType)s \\dt%(DataType)s \\else \\dt{%(DataType)s} \\fi" % { 'DataType': DataType } + def getResourceDirectivesTable(self, resourcename): result="\\begin{center}\n" result+="\\begin{tabular}{l | l | l | l}\n" - result+=" name & type of data & default value & remark \\\\ \n" + result+="%(name)-50s & %(type)-30s & %(default)-20s & %(remark)s \\\\ \n" % { 'name': "name", 'type': "type of data", 'default': "default value", 'remark': "remark" } result+="\\hline \n" for directive in self.schema.getResourceDirectives(resourcename): data=self.schema.getResourceDirective(resourcename, directive) - m="{" - extra=[] + strings={ + 'directive': directive, + 'mc': "}", + 'extra': [], + 'default': "", + } + strings["datatype"] = self.getLatexDatatypeRef( data['datatype'] ) if data.get( 'equals' ): - datatype="= \\dt{"+data['datatype']+"}" + strings["datatype"]="= %(datatype)s" % { 'datatype': strings["datatype"] } else: - datatype="\{ \\dt{"+data['datatype']+"} \}" + strings["datatype"]="{ %(datatype)s }" % { 'datatype': strings["datatype"] } - deprecated="" + extra=[] if data.get( 'alias' ): extra.append("alias") - m="\\textit{" + strings["mo"]="\\textit{" if data.get( 'deprecated' ): extra.append("deprecated") - m="\\textit{" + strings["mo"]="\\textit{" if data.get( 'required' ): extra.append("required") - m="\\textbf{" - default="" + strings["mo"]="\\textbf{" + strings["extra"]=", ".join(extra) + if data.get( 'default_value' ): - default=data.get( 'default_value' ) + strings["default"]=data.get( 'default_value' ) + if data.get( 'platform_specific' ): + strings["default"]+=" \\textit{\\small(platform specific)}" + + strings["index"]="\\index[dir]{Directive!%(directive)s}" % ( strings ) + strings["t_directive"] = self.getStringsWithModifiers( "directive", strings ) + strings["t_datatype"] = self.getStringsWithModifiers( "datatype", strings ) + strings["t_default"] = self.getStringsWithModifiers( "default", strings ) + strings["t_extra"] = self.getStringsWithModifiers( "extra", strings ) + + result+="%(index)-80s\n" % ( strings ) + result+="%(t_directive)-80s &\n" % ( strings ) + result+="%(t_datatype)-80s &\n" % ( strings ) + result+="%(t_default)-80s &\n" % ( strings ) + result+="%(t_extra)s\n" % ( strings ) + result+="\\\\ \n\n" % ( strings ) - result+=m+directive + "} & " + m + datatype + "} & " + m + default + "} & " + m + " ".join(extra) + "}\\\\ \n" result+="\\end{tabular}\n" result+="\\end{center}\n" result+="\n" @@ -140,5 +177,5 @@ def writeResourceDirectives(self, resourcename, filename=None): #print schema.getResources() for resource in schema.getResources(): logger.info( "resource: " + resource ) - latex.writeResourceDirectives(resource, "autogenerated/director-resource-"+resource+"-description.tex") - latex.writeResourceDirectivesTable(resource, "autogenerated/director-resource-"+resource+"-table.tex") + latex.writeResourceDirectives(resource, "autogenerated/director-resource-"+resource.lower()+"-description.tex") + latex.writeResourceDirectivesTable(resource, "autogenerated/director-resource-"+resource.lower()+"-table.tex") diff --git a/packaging/bareos-docs.spec b/packaging/bareos-docs.spec index 39d79af..4cc7be4 100644 --- a/packaging/bareos-docs.spec +++ b/packaging/bareos-docs.spec @@ -6,7 +6,7 @@ # Name: bareos-docs -Version: 14.3.0 +Version: 14.4.0 Release: 0 License: GFDL-1.3 Summary: Documentation