]> git.sur5r.net Git - bacula/bacula/commitdiff
Update restore test + add tls authenticate test
authorKern Sibbald <kern@sibbald.com>
Tue, 11 Dec 2007 16:26:51 +0000 (16:26 +0000)
committerKern Sibbald <kern@sibbald.com>
Tue, 11 Dec 2007 16:26:51 +0000 (16:26 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@6038 91ce42f0-d328-0410-95d8-f526ca767f89

regress/scripts/copy-tls-auth-conf [new file with mode: 0755]
regress/scripts/tls-auth-bacula-dir.conf.in [new file with mode: 0644]
regress/scripts/tls-auth-bacula-fd.conf.in [new file with mode: 0644]
regress/scripts/tls-auth-bacula-sd.conf.in [new file with mode: 0644]
regress/tests/restore-by-file-test

diff --git a/regress/scripts/copy-tls-auth-conf b/regress/scripts/copy-tls-auth-conf
new file mode 100755 (executable)
index 0000000..dd98432
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+/bin/cp -f scripts/tls-auth-bacula-dir.conf bin/bacula-dir.conf
+/bin/cp -f scripts/tls-auth-bacula-sd.conf bin/bacula-sd.conf
+/bin/cp -f scripts/tls-auth-bacula-fd.conf bin/bacula-fd.conf
+/bin/cp -f scripts/test-console.conf bin/bconsole.conf
+/bin/cp -f scripts/tls-CA.pem bin/tls-CA.pem
+/bin/cp -f scripts/tls-cert.pem bin/tls-cert.pem
diff --git a/regress/scripts/tls-auth-bacula-dir.conf.in b/regress/scripts/tls-auth-bacula-dir.conf.in
new file mode 100644 (file)
index 0000000..ac78e2b
--- /dev/null
@@ -0,0 +1,382 @@
+#
+# 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 1.39 or later
+#
+#  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 = @hostname@-dir
+  DIRPort = @dirport@                # where we listen for UA connections
+  QueryFile = "@scriptdir@/query.sql"
+  WorkingDirectory = "@working_dir@"
+  PidDirectory = "@piddir@"
+  SubSysDirectory = "@subsysdir@"
+  Maximum Concurrent Jobs = 4
+  Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3"         # Console password
+  Messages = Standard
+}
+
+#
+# Define the main nightly save backup job
+#   By default, this job will back up to disk in @tmpdir@
+Job {
+  Name = "NightlySave"
+  Type = Backup
+  Client=@hostname@-fd 
+  FileSet="Full Set"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Write Bootstrap = "@working_dir@/NightlySave.bsr"
+  Maximum Concurrent Jobs = 4
+  SpoolData=yes
+}
+
+Job {
+  Name = "MonsterSave"
+  Type = Backup
+  Client=@hostname@-fd 
+  FileSet="Full Set"
+  Storage = File1
+  Messages = Standard
+  Pool = Default
+  Write Bootstrap = "@working_dir@/NightlySave.bsr"
+}
+
+
+Job {
+  Name = "VerifyVolume"
+  Type = Verify
+  Level = VolumeToCatalog
+  Client=@hostname@-fd 
+  FileSet="Full Set"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Write Bootstrap = "@working_dir@/NightlySave.bsr"
+}
+
+
+Job {
+  Name = "SparseTest"
+  Type = Backup
+  Client=@hostname@-fd 
+  FileSet="SparseSet"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Write Bootstrap = "@working_dir@/NightlySave.bsr"
+}
+
+Job {
+  Name = "CompressedTest"
+  Type = Backup
+  Client=@hostname@-fd 
+  FileSet="CompressedSet"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Maximum Concurrent Jobs = 4
+  Write Bootstrap = "@working_dir@/NightlySave.bsr"
+}
+
+Job {
+  Name = "SparseCompressedTest"
+  Type = Backup
+  Client=@hostname@-fd 
+  FileSet="SparseCompressedSet"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Write Bootstrap = "@working_dir@/NightlySave.bsr"
+}
+
+Job {
+  Name = "FIFOTest"
+  Type = Backup
+  Client=@hostname@-fd 
+  FileSet="FIFOSet"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Write Bootstrap = "@working_dir@/NightlySave.bsr"
+  ClientRunBeforeJob = "/bin/sleep 60"
+}
+
+
+
+# Backup the catalog database (after the nightly save)
+Job {
+  Name = "BackupCatalog"
+  Type = Backup
+  Client=@hostname@-fd 
+  FileSet="Catalog"
+#  Schedule = "WeeklyCycleAfterBackup"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  # This creates an ASCII copy of the catalog
+  RunBeforeJob = "@sbindir@/make_catalog_backup -u regress"
+  # This deletes the copy of the catalog
+  RunAfterJob  = "@sbindir@/delete_catalog_backup"
+  Write Bootstrap = "@working_dir@/BackupCatalog.bsr"
+}
+
+JobDefs {
+  Name = "BackupJob"
+  Type = Backup
+  Pool = Default
+  Storage = File
+  Messages = Standard
+  Priority = 10
+}
+
+Job {
+  JobDefs = "BackupJob"
+  Name = "bug621-job-1"
+  Client = @hostname@-fd
+  FileSet="Full Set"
+  ClientRunBeforeJob = "/bin/sleep 60"
+}
+
+Job {
+  JobDefs = "BackupJob"
+  Name = "bug621-job-2"
+  Client = @hostname@-fd
+  FileSet = "Full Set"
+  Max Run Time = 30
+  Priority = 15
+}
+
+
+# Standard Restore template, to be changed by Console program
+Job {
+  Name = "RestoreFiles"
+  Type = Restore
+  Client=@hostname@-fd 
+  FileSet="Full Set"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Where = @tmpdir@/bacula-restores
+}
+
+
+# List of files to be backed up
+FileSet {
+  Name = "Full Set"
+  Include {  Options { signature=MD5 }
+     File =  <@tmpdir@/file-list
+  }
+}
+
+FileSet {
+  Name = "SparseSet"
+  Include {
+    Options {
+      signature=MD5
+      sparse=yes
+    }
+    File = <@tmpdir@/file-list
+  }
+}
+
+FileSet {
+  Name = "CompressedSet"
+  Include {
+    Options {
+      signature=MD5 
+      compression=GZIP 
+    }
+    File = <@tmpdir@/file-list
+  }
+}
+
+FileSet {
+  Name = "FIFOSet"
+  Include {
+    Options {
+      readfifo = yes
+      signature=MD5 
+    }
+    File = <@tmpdir@/file-list
+  }
+}
+
+
+FileSet {
+  Name = "SparseCompressedSet"
+  Include {
+    Options {
+      signature=MD5 
+      compression=GZIP
+      sparse=yes
+    }
+    File = <@tmpdir@/file-list
+  }
+}
+
+
+
+#
+# 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 = Level=Full 1st sun at 1:05
+  Run = Level=Differential 2nd-5th sun at 1:05
+  Run = Level=Incremental mon-sat at 1:05
+}
+
+# This schedule does the catalog. It starts after the WeeklyCycle
+Schedule {
+  Name = "WeeklyCycleAfterBackup"
+  Run = Level=Full sun-sat at 1:10
+}
+
+# This is the backup of the catalog
+FileSet {
+  Name = "Catalog"
+  Include {
+    Options {
+      signature=MD5
+    }
+    File = /home/kern/bacula/regress/bin/working/bacula.sql
+  }
+}
+
+# Client (File Services) to backup
+Client {
+  Name = @hostname@-fd
+  Address = @hostname@
+  FDPort = @fdport@
+  Catalog = MyCatalog
+  Password = "xevrjURYoCHhn26RaJoWbeWXEY/a3VqGKp/37tgWiuHc"          # password for FileDaemon
+  File Retention = 30d                # 30 days
+  Job Retention = 180d                # six months
+  AutoPrune = yes                     # Prune expired Jobs/Files
+  Maximum Concurrent Jobs = 4
+  TLS Authenticate = yes
+  TLS Require = no
+  TLS Certificate = "@scriptdir@/tls-cert.pem"
+  TLS Key = "@scriptdir@/tls-cert.pem"
+  TLS CA Certificate File = "@scriptdir@/tls-CA.pem"
+}
+
+# Definiton of file storage device
+Storage {
+  Name = File
+  Address = @hostname@                # N.B. Use a fully qualified name here
+  SDPort = @sdport@
+  Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+  Device = FileStorage
+  Media Type = File
+  Maximum Concurrent Jobs = 4
+  TLS Authenticate = yes
+  TLS Require = no
+  TLS Certificate = "@scriptdir@/tls-cert.pem"
+  TLS Key = "@scriptdir@/tls-cert.pem"
+  TLS CA Certificate File = "@scriptdir@/tls-CA.pem"
+}
+
+Storage {
+  Name = File1
+  Address = @hostname@                # N.B. Use a fully qualified name here
+  SDPort = @sdport@
+  Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+  Device = FileStorage1
+  Media Type = File1
+  Maximum Concurrent Jobs = 4
+  TLS Authenticate = yes
+  TLS Require = no
+  TLS Certificate = "@scriptdir@/tls-cert.pem"
+  TLS Key = "@scriptdir@/tls-cert.pem"
+  TLS CA Certificate File = "@scriptdir@/tls-CA.pem"
+}
+
+
+# Definition of DLT tape storage device
+#Storage {
+#  Name = DLTDrive
+#  Address = @hostname@                # N.B. Use a fully qualified name here
+#  SDPort = @sdport@
+#  Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"          # password for Storage daemon
+#  Device = "HP DLT 80"                # must be same as Device in Storage daemon
+#  Media Type = DLT8000                # must be same as MediaType in Storage daemon
+#}
+
+# Definition of DDS tape storage device
+#Storage {
+#  Name = SDT-10000
+#  Address = @hostname@                # N.B. Use a fully qualified name here
+#  SDPort = @sdport@
+#  Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"          # password for Storage daemon
+#  Device = SDT-10000                  # must be same as Device in Storage daemon
+#  Media Type = DDS-4                  # must be same as MediaType in Storage daemon
+#}
+
+# Definition of 8mm tape storage device
+#Storage {
+#  Name = "8mmDrive"
+#  Address = @hostname@                # N.B. Use a fully qualified name here
+#  SDPort = @sdport@
+#  Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+#  Device = "Exabyte 8mm"
+#  MediaType = "8mm"
+#}
+
+
+# Generic catalog service
+Catalog {
+  Name = MyCatalog
+  dbname = regress; user = regress; password = ""
+}
+
+# Reasonable message delivery -- send most everything to email address
+#  and to the console
+Messages {
+  Name = Standard
+  mailcommand = "@sbindir@/bsmtp -h localhost -f \"\(Bacula regression\) %r\" -s \"Regression: %t %e of %c %l\" %r"
+  operatorcommand = "@sbindir@/bsmtp -h localhost -f \"\(Bacula regression\) %r\" -s \"Regression: Intervention needed for %j\" %r"
+  MailOnError = @job_email@ = all
+  operator = @job_email@ = mount
+  console = all, !skipped, !terminate, !restored
+#
+# 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 the scroll off the console.
+#
+  append = "@working_dir@/log" = all, !skipped
+}
+
+Messages {
+  Name = NoEmail
+  mailcommand = "@sbindir@/bsmtp -h localhost -f \"\(Bacula regression\) %r\" -s \"Regression: %t %e of %c %l\" %r"
+  console = all, !skipped, !terminate
+#
+# 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 the scroll off the console.
+#
+  append = "@working_dir@/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 = 365d             # one year
+# Label Format = "TEST-${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}:${NumVols}"
+}
diff --git a/regress/scripts/tls-auth-bacula-fd.conf.in b/regress/scripts/tls-auth-bacula-fd.conf.in
new file mode 100644 (file)
index 0000000..2250641
--- /dev/null
@@ -0,0 +1,43 @@
+#
+# Default  Bacula File Daemon Configuration file
+#
+#  For Bacula release 2.0
+#
+# 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 = @hostname@-dir
+  Password = "xevrjURYoCHhn26RaJoWbeWXEY/a3VqGKp/37tgWiuHc"
+  TLS Authenticate = yes
+  TLS Require = no
+  TLS Certificate = "@scriptdir@/tls-cert.pem"
+  TLS Key = "@scriptdir@/tls-cert.pem"
+  TLS CA Certificate File = "@scriptdir@/tls-CA.pem"
+}
+
+#
+# "Global" File daemon configuration specifications
+#
+FileDaemon {                          # this is me
+  Name = @hostname@-fd
+  FDPort = @fdport@                  # where we listen for the director
+  WorkingDirectory = "@working_dir@"
+  Pid Directory = "@piddir@"
+  SubSys Directory = "@subsysdir@"
+  TLS Authenticate = yes
+  TLS Require = no
+  TLS Certificate = "@scriptdir@/tls-cert.pem"
+  TLS Key = "@scriptdir@/tls-cert.pem"
+  TLS CA Certificate File = "@scriptdir@/tls-CA.pem"
+}
+
+# Send all messages except skipped files back to Director
+Messages {
+  Name = Standard
+  director = @hostname@-dir = all, !terminate
+}
diff --git a/regress/scripts/tls-auth-bacula-sd.conf.in b/regress/scripts/tls-auth-bacula-sd.conf.in
new file mode 100644 (file)
index 0000000..880effd
--- /dev/null
@@ -0,0 +1,117 @@
+#
+# Default Bacula Storage Daemon Configuration file
+#
+#  For Bacula release 1.33
+#
+# 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 = @hostname@-sd
+  SDPort = @sdport@                  # Director's port      
+  WorkingDirectory = "@working_dir@"
+  Pid Directory = "@piddir@"
+  Subsys Directory = "@subsysdir@"
+  TLS Authenticate = yes
+  TLS Require = no
+  TLS Certificate = "@scriptdir@/tls-cert.pem"
+  TLS Key = "@scriptdir@/tls-cert.pem"
+  TLS CA Certificate File = "@scriptdir@/tls-CA.pem"
+}
+
+#
+# List Directors who are permitted to contact Storage daemon
+#
+Director {
+  Name = @hostname@-dir
+  Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+  TLS Authenticate = yes
+  TLS Require = no
+  TLS Certificate = "@scriptdir@/tls-cert.pem"
+  TLS Key = "@scriptdir@/tls-cert.pem"
+  TLS CA Certificate File = "@scriptdir@/tls-CA.pem"
+}
+
+#
+# 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 = @tmpdir@
+  LabelMedia = yes;                   # lets Bacula label unlabelled media
+  Random Access = Yes;
+  AutomaticMount = yes;               # when device opened, read it
+  RemovableMedia = no;
+  AlwaysOpen = no;
+# Maximum File Size = 10KB
+}
+
+Device {
+  Name = FileStorage1
+  Media Type = File1
+  Archive Device = @tmpdir@
+  LabelMedia = yes;                   # lets Bacula label unlabelled media
+  Random Access = Yes;
+  AutomaticMount = yes;               # when device opened, read it
+  RemovableMedia = no;
+  AlwaysOpen = no;
+}
+
+
+#Device {
+#  Name = "HP DLT 80"
+#  Media Type = DLT8000
+#  Archive Device = /dev/nst0
+#  AutomaticMount = yes;               # when device opened, read it
+#  AlwaysOpen = yes;
+#  RemovableMedia = yes;
+#}
+
+#Device {
+#  Name = SDT-7000                     # 
+#  Media Type = DDS-2
+#  Archive Device = /dev/nst0
+#  AutomaticMount = yes;               # when device opened, read it
+#  AlwaysOpen = yes;
+#  RemovableMedia = yes;
+#}
+
+#Device {
+#  Name = Floppy
+#  Media Type = Floppy
+#  Archive Device = /mnt/floppy
+#  RemovableMedia = yes;
+#  Random Access = Yes;
+#  AutomaticMount = yes;               # when device opened, read it
+#  AlwaysOpen = no;
+#}
+
+#
+# A very old Exabyte with no end of media detection
+#
+#Device {
+#  Name = "Exabyte 8mm"
+#  Media Type = "8mm"
+#  Archive Device = /dev/nst0
+#  Hardware end of medium = No;
+#  AutomaticMount = yes;               # when device opened, read it
+#  AlwaysOpen = Yes;
+#  RemovableMedia = yes;
+#}
+
+# 
+# Send all messages to the Director, 
+# mount messages also are sent to the email address
+#
+Messages {
+  Name = Standard
+  director = @hostname@-dir = all, !terminate
+}
index ec5a70fc22e54e68f1ee789bc429b09b8e0ca381..04b448d82dfcbd529334bca2d8a9725e43c8aefe 100755 (executable)
@@ -32,13 +32,73 @@ run job=$JobName yes
 wait
 messages
 @# 
-@# now do a restore
+@# now run 10 restores
 @#
 @$out ${cwd}/tmp/log2.out
 restore where=${cwd}/tmp/bacula-restores storage=File
 7
 <${cwd}/tmp/restore-list
 
+yes
+wait
+restore where=${cwd}/tmp/bacula-restores storage=File
+7
+<${cwd}/tmp/restore-list
+
+yes
+wait
+restore where=${cwd}/tmp/bacula-restores storage=File
+7
+<${cwd}/tmp/restore-list
+
+yes
+wait
+restore where=${cwd}/tmp/bacula-restores storage=File
+7
+<${cwd}/tmp/restore-list
+
+yes
+wait
+restore where=${cwd}/tmp/bacula-restores storage=File
+7
+<${cwd}/tmp/restore-list
+
+yes
+wait
+restore where=${cwd}/tmp/bacula-restores storage=File
+7
+<${cwd}/tmp/restore-list
+
+yes
+wait
+restore where=${cwd}/tmp/bacula-restores storage=File
+7
+<${cwd}/tmp/restore-list
+
+yes
+wait
+restore where=${cwd}/tmp/bacula-restores storage=File
+7
+<${cwd}/tmp/restore-list
+
+yes
+wait
+restore where=${cwd}/tmp/bacula-restores storage=File
+7
+<${cwd}/tmp/restore-list
+
+yes
+wait
+restore where=${cwd}/tmp/bacula-restores storage=File
+7
+<${cwd}/tmp/restore-list
+
+yes
+wait
+restore where=${cwd}/tmp/bacula-restores storage=File
+7
+<${cwd}/tmp/restore-list
+
 yes
 wait
 messages