From 71f528e6a264f84f880a92ecdf4deafaff1f7201 Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Tue, 2 Aug 2005 16:32:37 +0000 Subject: [PATCH] Setup for two drives git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@2279 91ce42f0-d328-0410-95d8-f526ca767f89 --- regress/README | 11 +- regress/prototype.conf | 9 ++ regress/scripts/bacula-dir-win32-tape.conf | 145 +++++++++++++++++++++ regress/scripts/bacula-sd-2drive.conf.in | 75 +++++++++++ regress/scripts/bacula-sd-2tape.conf.in | 4 +- regress/scripts/copy-2drive-confs | 6 + regress/scripts/do_sed | 5 +- regress/tests/bsr-opt-test | 11 +- 8 files changed, 251 insertions(+), 15 deletions(-) create mode 100644 regress/scripts/bacula-dir-win32-tape.conf create mode 100644 regress/scripts/bacula-sd-2drive.conf.in create mode 100755 regress/scripts/copy-2drive-confs diff --git a/regress/README b/regress/README index c63b737ed7..96b9ce57e9 100644 --- a/regress/README +++ b/regress/README @@ -1,10 +1,7 @@ - Bacula Regression - Kern Sibbald - December 2003 + Bacula Regression + Kern Sibbald -This is Bacula's regression script directory. At this time -(December 2003), it is still in development, so all the tests are -not complete. +This is Bacula's regression script directory. To set it up, create your personal configuration file, by copying prototype.conf to xxx.conf or simply editing prototype.conf @@ -82,7 +79,7 @@ configuration file. To avoid re-doing a make setup if you have made a change to the conf files, and you do not need a new copy of the source, you can simply do: - scripts/do-sed + make sed Debugging failed tests: The simplest thing to do is to edit tests/xxxx where xxxx is the name of diff --git a/regress/prototype.conf b/regress/prototype.conf index 14592a3f94..70d931f8ff 100644 --- a/regress/prototype.conf +++ b/regress/prototype.conf @@ -25,6 +25,7 @@ SQLITE_DIR=${HOME}/bacula/depkgs/sqlite # The device name of your tape drive if you have one # TAPE_DRIVE=/dev/nst0 +TAPE_DRIVE1=/dev/null # # if you don't have an autochanger set AUTOCHANGER to /dev/null @@ -35,3 +36,11 @@ AUTOCHANGER=/dev/sg0 # This must be the path to the autochanger including its name # AUTOCHANGER_PATH=/bin/mtx + +# Set your database here +WHICHDB?="--with-sqlite=${SQLITE_DIR}" +#WHICHDB="--with-mysql=${HOME}/mysql" + +# Set this to "--with-tcp-wrappers" or "--without-tcp-wrappers" +TCPWRAPPERS="--with-tcp-wrappers" + diff --git a/regress/scripts/bacula-dir-win32-tape.conf b/regress/scripts/bacula-dir-win32-tape.conf new file mode 100644 index 0000000000..84898c7190 --- /dev/null +++ b/regress/scripts/bacula-dir-win32-tape.conf @@ -0,0 +1,145 @@ +# +# 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.33 +# +# 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 = roxie-dir + DIRport = 8101 # where we listen for UA connections + QueryFile = "/home/kern/bacula/regress/bin/query.sql" + WorkingDirectory = "/home/kern/bacula/regress/working" + PidDirectory = "/home/kern/bacula/regress/working" + Maximum Concurrent Jobs = 4 + Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3" + Messages = Daemon +} + +# +# Define the main nightly save backup job +# By default, this job will back up to disk in /tmp +Job { + Name = "NightlySave" + Type = Backup + Client=Tibs + FileSet="Full Set" + Storage = DDS-4 + Messages = Standard + Pool = Default + Write Bootstrap = "/home/kern/bacula/regress/working/NightlySave.bsr" + Maximum Concurrent Jobs = 4 + SpoolData = yes +} + + +# Standard Restore template, to be changed by Console program +Job { + Name = "RestoreFiles" + Type = Restore + Client=Tibs + FileSet="Full Set" + Storage = DDS-4 + Messages = Standard + Pool = Default + Where = /tmp/bacula-restores +} + + +# List of files to be backed up +FileSet { + Name = "Full Set" + Enable VSS = yes + Include { Options { signature=MD5 } + File = "c:" + } +} + + +# +# 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 1:05 + Run = Differential 2nd-5th sun at 1:05 + Run = Incremental mon-sat at 1:05 +} + +# Client (File Services) to backup +Client { + Name = Tibs + Address = tibs + FDPort = 9102 + Catalog = MyCatalog + Password = "xBzFq+a9llZyGyfMaNO9e3outP86/1AUAT8P34RoT62G" + File Retention = 30d # 30 days + Job Retention = 180d # six months + AutoPrune = yes # Prune expired Jobs/Files + Maximum Concurrent Jobs = 4 +} + +# Definition of DDS tape storage device +Storage { + Name = DDS-4 + Address = 192.168.68.112 # N.B. Use a fully qualified name here + SDPort = 8103 + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" # 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 + Maximum Concurrent Jobs = 4 +} + + +# Generic catalog service +Catalog { + Name = MyCatalog + dbname = bacula; user = bacula; password = "" +} + +# Reasonable message delivery -- send most everything to email address +# and to the console +Messages { + Name = Standard + mailcommand = "/home/kern/bacula/regress/bin/bsmtp -h localhost -f \"\(Bacula Regression\) %r\" -s \"Bacula: %t %e of %c %l\" %r" + operatorcommand = "/home/kern/bacula/regress/bin/bsmtp -h localhost -f \"\(Bacula Regression\) %r\" -s \"Bacula: Intervention needed for %j\" %r" + MailOnError = kern@sibbald.com = all, !terminate + operator = kern@sibbald.com = 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 = "/home/kern/bacula/regress/working/log" = all, !skipped +} + +# +# Message delivery for daemon messages (no job). +Messages { + Name = Daemon + mailcommand = "/home/kern/bacula/regress/bin/bsmtp -h @smtp_host@ -f \"\(Bacula\) %r\" -s \"Bacula daemon message\" %r" + mail = kern@sibbald.com = all, !skipped + console = all, !skipped, !saved + append = "/home/kern/bacula/regress/working/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 + Accept Any Volume = yes # write on any volume in the pool +} diff --git a/regress/scripts/bacula-sd-2drive.conf.in b/regress/scripts/bacula-sd-2drive.conf.in new file mode 100644 index 0000000000..6b56927468 --- /dev/null +++ b/regress/scripts/bacula-sd-2drive.conf.in @@ -0,0 +1,75 @@ +# +# 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 = 8103 # Director's port + WorkingDirectory = "@working_dir@" + Pid Directory = "@piddir@" + Subsys Directory = "@subsysdir@" +} + +# +# List Directors who are permitted to contact Storage daemon +# +Director { + Name = @hostname@-dir + Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" +} + +# +# Devices supported by this Storage daemon +# To connect, the Director's bacula-dir.conf must have the +# same Name and MediaType. +# +Autochanger { + Name = DDS-4 + Changer Device = @autochanger@ + Changer Command ="@scriptdir@/mtx-changer %c %o %S %a" + Device = Drive-0, Drive-1 +} + +Device { + Name = Drive-0 + Media Type = DDS-4 + Archive Device = @tape_drive@ + AutomaticMount = yes; # when device opened, read it + Autochanger = yes + Drive Index = 0 + AlwaysOpen = yes; + RemovableMedia = yes; + @@sbindir@/tape_options +# Maximum File Size = 1000000 +} + +Device { + Name = Drive-1 + Media Type = DDS-4 + Archive Device = @tape_drive1@ + AutomaticMount = yes; # when device opened, read it + Autochanger = yes + Drive Index = 0 + AlwaysOpen = yes; + RemovableMedia = yes; + @@sbindir@/tape_options +# Maximum File Size = 1000000 +} + + +# +# Send all messages to the Director, +# mount messages also are sent to the email address +# +Messages { + Name = Standard + director = @hostname@-dir = all, !terminate +} diff --git a/regress/scripts/bacula-sd-2tape.conf.in b/regress/scripts/bacula-sd-2tape.conf.in index 63e541b91c..3e9f83a595 100644 --- a/regress/scripts/bacula-sd-2tape.conf.in +++ b/regress/scripts/bacula-sd-2tape.conf.in @@ -35,11 +35,11 @@ Autochanger { Name = DDS-4 Changer Device = @autochanger@ Changer Command ="@scriptdir@/mtx-changer %c %o %S %a" - Device = DDS-4-1 + Device = Drive-0 } Device { - Name = DDS-4-1 # + Name = Drive-0 # Media Type = DDS-4 Archive Device = @tape_drive@ AutomaticMount = yes; # when device opened, read it diff --git a/regress/scripts/copy-2drive-confs b/regress/scripts/copy-2drive-confs new file mode 100755 index 0000000000..5877cea6e3 --- /dev/null +++ b/regress/scripts/copy-2drive-confs @@ -0,0 +1,6 @@ +#!/bin/sh +/bin/cp -f scripts/bacula-dir-tape.conf bin/bacula-dir.conf +/bin/cp -f scripts/bacula-sd-2drive.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 +touch bin/tape_options diff --git a/regress/scripts/do_sed b/regress/scripts/do_sed index 046e7ab3e6..d7af152034 100755 --- a/regress/scripts/do_sed +++ b/regress/scripts/do_sed @@ -1,10 +1,11 @@ #!/bin/sh # -if test $# != 4 ; then +if test $# != 5 ; then echo "First arg must be email name" echo " and the second must be a tape drive" echo " and the third must be a tape control name or /dev/null" echo " and the fourth must be the full path to the mtx program" + echo " and the fifth must be tape drive 1 or /dev/null" exit 1 fi out="/tmp/sed_tmp" @@ -25,6 +26,7 @@ echo "s%@autochanger@%${3}%g" >>${out} echo "s%@tmpdir@%${cwd}/tmp%g" >>${out} echo "s%@hostname@%${host}%g" >>${out} echo "s%@changer_path@%${4}%g" >>${out} +echo "s%@tape_drive1@%${5}%g" >>${out} # process .in files with sed script sed -f ${out} ${cwd}/scripts/test-bacula-dir.conf.in >${cwd}/scripts/test-bacula-dir.conf @@ -37,6 +39,7 @@ sed -f ${out} ${cwd}/scripts/bacula-dir-tape.conf.in >${cwd}/scripts/bacula-dir- sed -f ${out} ${cwd}/scripts/bacula-dir-win32-tape.conf.in >${cwd}/scripts/bacula-dir-win32-tape.conf sed -f ${out} ${cwd}/scripts/bacula-sd-tape.conf.in >${cwd}/scripts/bacula-sd-tape.conf sed -f ${out} ${cwd}/scripts/bacula-sd-2tape.conf.in >${cwd}/scripts/bacula-sd-2tape.conf +sed -f ${out} ${cwd}/scripts/bacula-sd-2drive.conf.in >${cwd}/scripts/bacula-sd-2drive.conf sed -f ${out} ${cwd}/scripts/cleanup-tape.in >${cwd}/scripts/cleanup-tape sed -f ${out} ${cwd}/scripts/cleanup-2tape.in >${cwd}/scripts/cleanup-2tape sed -f ${out} ${cwd}/scripts/prepare-two-tapes.in >${cwd}/scripts/prepare-two-tapes diff --git a/regress/tests/bsr-opt-test b/regress/tests/bsr-opt-test index d1edfd61e6..b0ffe8209a 100755 --- a/regress/tests/bsr-opt-test +++ b/regress/tests/bsr-opt-test @@ -18,10 +18,11 @@ echo " === Starting bsr-opt-test at `date +%R:%S` ===" >working/log echo " " bin/bacula start 2>&1 >/dev/null -bin/bconsole -c bin/bconsole.conf <&1 >/dev/null -@output /dev/null +#bin/bconsole -c bin/bconsole.conf <&1 >/dev/null +bin/bconsole -c bin/bconsole.conf <