]> git.sur5r.net Git - bacula/bacula/commitdiff
Add first cut plugin test
authorKern Sibbald <kern@sibbald.com>
Thu, 25 Sep 2008 16:49:56 +0000 (16:49 +0000)
committerKern Sibbald <kern@sibbald.com>
Thu, 25 Sep 2008 16:49:56 +0000 (16:49 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@7639 91ce42f0-d328-0410-95d8-f526ca767f89

regress/scripts/copy-plugin-confs [new file with mode: 0755]
regress/scripts/create_sed
regress/scripts/do_sed
regress/scripts/functions
regress/scripts/new-test-bacula-dir.conf.in
regress/scripts/plugin-test-bacula-dir.conf.in [new file with mode: 0644]
regress/scripts/test-bacula-fd.conf.in

diff --git a/regress/scripts/copy-plugin-confs b/regress/scripts/copy-plugin-confs
new file mode 100755 (executable)
index 0000000..cc8bf39
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+/bin/cp -f scripts/plugin-test-bacula-dir.conf bin/bacula-dir.conf
+/bin/cp -f scripts/test-bacula-sd.conf bin/bacula-sd.conf
+/bin/cp -f scripts/test-bacula-fd.conf bin/bacula-fd.conf
+/bin/cp -f scripts/test-console.conf bin/bconsole.conf
+
+scripts/set_tape_options
index 7cc4e0ef2161ba063dab9b579c2ce8344b920b5d..9e4e58699dc090a3039cd0503dfec4d3ce4852a2 100755 (executable)
@@ -24,6 +24,7 @@ os=`uname -s`-`./scripts/get-os`
 dbengine=`echo ${WHICHDB} | sed -e 's/--with-//' -e 's/=.*//'`
 bversion=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
 bdate=`sed -n -e 's/^.*LSMDATE.*"\(.*\)"$/\1/p' ${srcdir}/src/version.h`
+builddir="${cwd}/build"
 
 # Create sed command script
 echo "s%@sbindir@%${cwd}/bin%g" >${out}
@@ -71,3 +72,4 @@ echo "s%@win32_password@%${WIN32_PASSWORD}%g" >>${out}
 echo "s%@db_name@%${db_name}%g" >>${out}
 echo "s%@db_user@%${db_user}%g" >>${out}
 echo "s%@db_password@%${db_password}%g" >>${out}
+echo "s%@builddir@%${builddir}%g" >>${out}
index b8714c36ce882b5bee140ee9fe52798595225c9f..1533b90d1ff4bf100b099328df7a8284e668f1b9 100755 (executable)
@@ -15,6 +15,7 @@ sed -f ${out} ${cwd}/scripts/multi-client-bacula-dir.conf.in >${cwd}/scripts/mul
 sed -f ${out} ${cwd}/scripts/bacula-dir.conf.regexwhere.in >${cwd}/scripts/bacula-dir.conf.regexwhere
 sed -f ${out} ${cwd}/scripts/bacula-dir.conf.maxtime.in >${cwd}/scripts/bacula-dir.conf.maxtime
 sed -f ${out} ${cwd}/scripts/new-test-bacula-dir.conf.in >${cwd}/scripts/new-test-bacula-dir.conf
+sed -f ${out} ${cwd}/scripts/plugin-test-bacula-dir.conf.in >${cwd}/scripts/plugin-test-bacula-dir.conf
 sed -f ${out} ${cwd}/scripts/testa-bacula-dir.conf.in >${cwd}/scripts/testa-bacula-dir.conf
 sed -f ${out} ${cwd}/scripts/testb-bacula-dir.conf.in >${cwd}/scripts/testb-bacula-dir.conf
 sed -f ${out} ${cwd}/scripts/test-bacula-fd.conf.in >${cwd}/scripts/test-bacula-fd.conf
index 53b90e60f1fed363c203a3ef4fd9f7e2ef0b7c97..2788149b1cfbda29bf85ebca43f4561a9b7d7356 100644 (file)
@@ -116,7 +116,7 @@ run_bacula()
    zstat=0
    if test "$debug" -eq 1 ; then
      bin/bacula-ctl-sd start
-     bin/bacula-ctl-fd start
+     bin/bacula-ctl-fd start $1
      bin/bacula-ctl-dir start
      cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf
      return $?
index 7e79d25faab40f0f112c371957f10e16d553c7fe..4d82e67f0165051bd993f09492eb626af8a64630 100644 (file)
@@ -19,6 +19,7 @@ Director {                            # define myself
   WorkingDirectory = "@working_dir@"
   PidDirectory = "@piddir@"
   SubSysDirectory = "@subsysdir@"
+  PluginDirectory = "@sbindir@"
   Maximum Concurrent Jobs = 4
   Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3"         # Console password
   Messages = Standard
diff --git a/regress/scripts/plugin-test-bacula-dir.conf.in b/regress/scripts/plugin-test-bacula-dir.conf.in
new file mode 100644 (file)
index 0000000..0625b18
--- /dev/null
@@ -0,0 +1,489 @@
+#
+# 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@"
+  PluginDirectory = "@sbindir@/plugins"
+  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 = "MonsterFileSet"
+  Type = Backup
+  Client=@hostname@-fd 
+  FileSet="MonsterFileSet"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Maximum Concurrent Jobs = 4
+  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 = "pluginTest"
+  Type = Backup
+  Client=@hostname@-fd 
+  FileSet="pluginSet"
+  Storage = File
+  Messages = Standard
+  Pool = Default
+  Write Bootstrap = "@working_dir@/NightlySave.bsr"
+}
+
+
+
+# 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; sparse=yes }
+     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 = "pluginSet"
+  Include {
+    Options {
+      readfifo = yes
+      signature=MD5 
+    }
+    File = <@tmpdir@/file-list
+    Plugin = "bpipe:/@bpipe@/encrypt-bug.jpg:cat @builddir@/../encrypt-bug.jpg:cat >@tmpdir@/encrypt-bug.jpg"
+  }
+}
+
+
+FileSet {
+  Name = "SparseCompressedSet"
+  Include {
+    Options {
+      signature=MD5 
+      compression=GZIP
+      sparse=yes
+    }
+    File = <@tmpdir@/file-list
+  }
+}
+
+FileSet {
+  Name = "MonsterFileSet"
+  Include {
+    Options {
+       signature = MD5
+       noatime = yes
+       ignore case = yes
+       Exclude = yes
+       RegexDir = "Cache"
+       RegexDir = "Windows Defender"
+       RegexDir = "Temporary Internet Files"
+       RegexDir = "bacula"
+       RegexDir = "Temp"
+
+       RegexDir = "ATI Technologies"
+
+       RegexDir = "wmdownloads"
+       RegexDir = "My Music"
+       RegexDir = "iTunes"
+       RegexDir = "Cookies"
+
+       RegexFile = "desktop.ini"
+       RegexFile = "thumbs.db"
+       RegexFile = "acrobat7.exe"
+       RegexFile = "acr6win.exe"
+       RegexFile = "AdbeRdr70_enu_full.exe"
+       RegexFile = "antivirus10_1_5.exe"
+       #thunderbird lock file
+       RegexFile = "parent.lock"
+
+       RegexDir = "Retrospect Restore Points"
+
+       #exclude i386 director of windows installer files
+       WildDir = "[A-Z]:/i386"
+
+       # Exclude Mozilla-based programs' file caches
+       WildDir = "[A-Z]:/Documents and Settings/*/Application Data/*/Profiles/*/*/ImapMail"
+       WildDir = "[A-Z]:/Users/*/Application Data/*/Profiles/*/*/ImapMail"
+
+       # Exclude user's registry files - they're always in use anyway.
+       WildFile = "[A-Z]:/Documents and Settings/*/Local Settings/Application Data/Microsoft/Windows/usrclass.*"
+       WildFile = "[A-Z]:/Users/*/Local Settings/Application Data/Microsoft/Windows/usrclass.*"
+       WildFile = "[A-Z]:/Documents and Settings/*/ntuser.*"
+       WildFile = "[A-Z]:/Users/*/ntuser.*"
+
+       WildDir = "[A-Z]:/Documents and Settings/*/Recent"
+       WildDir = "[A-Z]:/Users/*/Recent"
+
+       WildDir = "[A-Z]:/Documents and Settings/*/Local Settings/History"
+       WildDir = "[A-Z]:/Users/*/Local Settings/History"
+
+       # These are always open and unable to be backed up
+       WildFile = "[A-Z]:/Documents and Settings/All Users/Application Data/Microsoft/Network/Downloader/qmgr[01].dat"
+       WildFile = "[A-Z]:/Users/All Users/Application Data/Microsoft/Network/Downloader/qmgr[01].dat"
+
+       #Exclude all of Windows...
+       WildDir = "[A-Z]:/windows"
+       WildDir = "[A-Z]:/winnt"
+       WildDir = "[A-Z]:/winxp"
+       WildDir = "[A-Z]:/win"
+
+       #symantec antivirus app stuff
+       WildDir = "[A-Z]:/*/Symantec*"
+
+       #system volume information
+       WildDir = "[A-Z]:/System Volume Information"
+
+       WildFile = "*.tmp"
+       # ghost image and spanning files
+       WildFile = "*.gho"
+       WildFile = "*.ghs"
+
+       # Recycle bins
+       WildDir = "[A-Z]:/RECYCLER"
+       WildDir = "[A-Z]:/RECYCLER"
+       WildDir = "[A-Z]:/RECYCLED"
+       WildDir = "[A-Z]:/$RECYCLE.BIN"
+
+       # Swap files
+       WildFile = "[A-Z]:/pagefile.sys"
+
+       # These are programs and are easier to reinstall than restore from
+       # backup
+       WildDir = "[A-Z]:/cygwin"
+       WildDir = "[A-Z]:/Program Files/Adobe/Acrobat 7.0"
+       WildDir = "[A-Z]:/Program Files/Adobe/Acrobat 8.0"
+
+       WildDir = "[A-Z]:/Program Files/Common Files/Software Center"
+       WildDir = "[A-Z]:/Software Center"
+
+       WildDir = "[A-Z]:/Program Files/Grisoft"
+       WildDir = "[A-Z]:/Program Files/Java"
+       WildDir = "[A-Z]:/Program Files/Java Web Start"
+       WildDir = "[A-Z]:/Program Files/JavaSoft"
+       WildDir = "[A-Z]:/Program Files/Microsoft Office"
+       WildDir = "[A-Z]:/Program Files/Mozilla Firefox"
+       WildDir = "[A-Z]:/Program Files/Mozilla Thunderbird"
+       WildDir = "[A-Z]:/Program Files/mozilla.org"
+       WildDir = "[A-Z]:/Program Files/OpenOffice*"
+    }
+    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
+}
+
+# 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
+}
+
+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
+}
+
+
+# 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
+  @libdbi@
+  dbname = @db_name@; user = @db_user@; password = "@db_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
+  catalog = 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
+  catalog = 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}"
+# Maximum Volume Jobs = 1
+}
index 6c3c439eef5c5c6fe9d027004c1235959ef643c8..0fa219bb3a79dd823d8868a5242779050b07bbd1 100644 (file)
@@ -24,6 +24,7 @@ FileDaemon {                          # this is me
   WorkingDirectory = "@working_dir@"
   Pid Directory = "@piddir@"
   SubSys Directory = "@subsysdir@"
+  Plugin Directory = "@sbindir@/plugins"
 }
 
 # Send all messages except skipped files back to Director