+++ /dev/null
-HOWTO SETUP A FAKE TAPE ENVIRONMENT
------------------------------------
-
-Introduction:
--------------
-
-The fake tape driver attempts to simulate a tape drive from a low level
-aspect. It emulates tape operations like fsf, bsf, weom, variable bloc, etc..
-
-For that the driver implements 5 operations :
- - read
- - write
- - open
- - close
- - ioctl
-
-If your bacula's binaries are compiled with fake tape support, you won't be
-able to use real tape drive.
-
-
-Setup the regress environment for tape tests
---------------------------------------------
-
-Be sure to configure your config file with this :
-
-TAPE_DRIVE="/tmp/drive0"
-TAPE_DRIVE1="/tmp/drive1"
-DRIVE1=0
-DRIVE2=1
-SLOT1=1
-SLOT2=2
-AUTOCHANGER="/tmp/ach_config"
-USE_FAKETAPE=yes
-AUTOCHANGER_SCRIPT=disk-changer
-
-You can remplace /tmp/ by what you want.
-
-Then, the /tmp/ach_config can contain this to simulate 2 drives :
-maxdrive=2
-maxslot=10
-
-And type "make setup"
-
-That all !
-
-
-Setup a quite big autochanger (5 drives and 80 slots)
------------------------------------------------------
-
-Just run "./tests/faketape-test-changer" test to use right configuration files,
-then you can use "./scripts/prepare-fake-autochanger" script to initialize the
-dummy autochanger.
-
-
-
-
--- /dev/null
+HOWTO SETUP A FAKE TAPE ENVIRONMENT
+-----------------------------------
+
+Introduction:
+-------------
+
+The fake tape driver (vtape) attempts to simulate a tape drive from a low level
+aspect. It emulates tape operations like fsf, bsf, weom, variable bloc, etc..
+
+For that the driver implements 5 operations :
+ - read
+ - write
+ - open
+ - close
+ - ioctl
+
+Setup the regress environment for tape tests
+--------------------------------------------
+
+Be sure to configure your config file with this :
+
+TAPE_DRIVE="/tmp/drive0"
+TAPE_DRIVE1="/tmp/drive1"
+DRIVE1=0
+DRIVE2=1
+SLOT1=1
+SLOT2=2
+AUTOCHANGER="/tmp/ach_config"
+USE_VTAPE=yes
+AUTOCHANGER_SCRIPT=disk-changer
+
+You can remplace /tmp/ by what you want.
+
+Then, the /tmp/ach_config can contain this to simulate 2 drives :
+maxdrive=2
+maxslot=10
+
+And type "make setup"
+
+That all !
+
+
+Setup a quite big autochanger (5 drives and 80 slots)
+-----------------------------------------------------
+
+Just run "./tests/vtape-test-changer" test to use right configuration files,
+then you can use "./scripts/prepare-fake-autochanger" script to initialize the
+dummy autochanger.
+
+
+
+
TAPE_DRIVE1="/dev/null"
# Set this if you are using fake tape driver
-#USE_FAKETAPE=--enable-faketape
+#USE_VTAPE=yes
-# Change this to use disk-changer with faketape
+# Change this to use disk-changer with vtape
AUTOCHANGER_SCRIPT=mtx-changer
# This must be the path to the autochanger including its name
+++ /dev/null
-#
-# Bacula Director Configuration file
-#
-#
-
-Director { # define myself
- Name = @hostname@-dir
- DIRPort = @dirport@ # where we listen for UA connections
- QueryFile = "@scriptdir@/query.sql"
- WorkingDirectory = "@working_dir@"
- PidDirectory = "@piddir@"
- Maximum Concurrent Jobs = 40
- Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3"
- Messages = Daemon
-}
-
-#
-# 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 = LTO3
- Messages = Standard
- Pool = Default
- Maximum Concurrent Jobs = 10
- SpoolData = yes
-# Prefer Mounted Volumes = no
-}
-
-Job {
- Name = "NightlySave1"
- Type = Backup
- Client=@hostname@-fd
- FileSet="Full Set"
- Storage = LTO1
- Messages = Standard
- Pool = Default
- Write Bootstrap = "@working_dir@/NightlySave1.bsr"
- Maximum Concurrent Jobs = 10
- SpoolData = yes
-# Prefer Mounted Volumes = no
- Client Run Before Job = "/bin/sleep 2"
-}
-
-Job {
- Name = "NightlySave2"
- Type = Backup
- Client=@hostname@-fd
- FileSet="Full Set"
- Storage = LTO1
- Messages = Standard
- Pool = Default
- Write Bootstrap = "@working_dir@/NightlySave2.bsr"
- Maximum Concurrent Jobs = 10
- SpoolData = yes
-# Prefer Mounted Volumes = no
-}
-
-Job {
- Name = "NightlySave3"
- Type = Backup
- Client=@hostname@-fd
- FileSet="Full Set"
- Storage = LTO1
- Messages = Standard
- Pool = Default
- Write Bootstrap = "@working_dir@/NightlySave3.bsr"
- Maximum Concurrent Jobs = 10
-# Prefer Mounted Volumes = no
-}
-
-Job {
- Name = "VerifyTape"
- Type = Verify
- Level = VolumeToCatalog
- Client=@hostname@-fd
- FileSet="Verify Set"
- Storage = LTO1
- Messages = Standard
- Pool = Default
- Write Bootstrap = "@working_dir@/NightlySave.bsr"
- Maximum Concurrent Jobs = 4
- SpoolData = yes
-# Prefer Mounted Volumes = no
-}
-
-
-# Standard Restore template, to be changed by Console program
-Job {
- Name = "RestoreFiles"
- Type = Restore
- Client=@hostname@-fd
- FileSet="Full Set"
- Storage = LTO1
- 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 = "Verify Set"
- Include {
- Options {
- signature=MD5
- verify=pins1
- }
- File = <@tmpdir@/file-list
- }
-}
-
-
-# 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 = 10
-}
-
-# Client (File Services) to backup
-Client {
- Name = @hostname@-fd2
- Address = @hostname@
- FDPort = @fdport@2
- 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 = 10
-}
-
-# Client (File Services) to backup
-Client {
- Name = @hostname@-fd3
- Address = @hostname@
- FDPort = @fdport@3
- 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 = 10
-}
-
-# Client (File Services) to backup
-Client {
- Name = @hostname@-fd4
- Address = @hostname@
- FDPort = @fdport@4
- 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 = 10
-}
-
-# Client (File Services) to backup
-Client {
- Name = @hostname@-fd5
- Address = @hostname@
- FDPort = @fdport@4
- 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 = 10
-}
-
-
-Storage {
- Name = LTO1
- Address = @hostname@
- SDPort = @sdport@
- Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
- Device = LTO
- Media Type = LTO1
- Autochanger = yes
- Maximum Concurrent Jobs = 50
-}
-
-Storage {
- Name = LTO3
- Address = @hostname@
- SDPort = @sdport@
- Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
- Device = LTO
- Media Type = LTO3
- Autochanger = yes
- Maximum Concurrent Jobs = 50
-}
-
-################################################################
-# WARNING: Bacula doesn't support this kind of configuration
-# This is for testing purpose only !!!!!!!!!!!!
-################################################################
-
-Storage {
- Name = LTO3_0
- Address = @hostname@
- SDPort = @sdport@
- Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
- Device = LTO3_0
- Media Type = LTO3
- Autochanger = yes
- Maximum Concurrent Jobs = 5
-}
-
-Storage {
- Name = LTO3_1
- Address = @hostname@
- SDPort = @sdport@
- Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
- Device = LTO3_1
- Media Type = LTO3
- Autochanger = yes
- Maximum Concurrent Jobs = 5
-}
-
-Storage {
- Name = LTO3_2
- Address = @hostname@
- SDPort = @sdport@
- Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
- Device = LTO3_2
- Media Type = LTO3
- Autochanger = yes
- Maximum Concurrent Jobs = 5
-}
-
-Storage {
- Name = LTO1_3
- Address = @hostname@
- SDPort = @sdport@
- Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
- Device = LTO1_3
- Media Type = LTO1
- Autochanger = yes
- Maximum Concurrent Jobs = 5
-}
-
-Storage {
- Name = LTO1_4
- Address = @hostname@
- SDPort = @sdport@
- Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
- Device = LTO1_4
- Media Type = LTO1
- Autochanger = yes
- Maximum Concurrent Jobs = 5
-}
-
-Storage {
- Name = LTO1_5
- Address = @hostname@
- SDPort = @sdport@
- Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
- Device = LTO1_5
- Media Type = LTO1
- Autochanger = yes
- Maximum Concurrent Jobs = 5
-}
-
-Storage {
- Name = LTO1-ANSI_6
- Address = @hostname@
- SDPort = @sdport@
- Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
- Device = LTO1-ANSI_6
- Media Type = LTO1-ANSI
- Autochanger = yes
- Maximum Concurrent Jobs = 5
-}
-
-# Definition of File storage device
-Storage {
- Name = File
- Address = @hostname@ # N.B. Use a fully qualified name here
- SDPort = @sdport@
- Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" # password for Storage daemon
- Device = FileStorage # must be same as Device in Storage daemon
- Media Type = FileMedia # must be same as MediaType in Storage daemon
- Maximum Concurrent Jobs = 10
-}
-
-# Generic catalog service
-Catalog {
- Name = MyCatalog
- @libdbi@
- dbname = regress; user = regress; password = ""
-}
-
-# Reasonable message delivery -- send most everything to email address
-# and to the console
-Messages {
- Name = Standard
- console = all, !skipped, !terminate, !restored
- append = "@working_dir@/log" = all, !skipped
- catalog = all, !skipped, !saved
-}
-
-#
-# Message delivery for daemon messages (no job).
-Messages {
- Name = Daemon
- console = all, !skipped, !saved
- append = "@working_dir@/log" = all, !skipped
- catalog = all, !skipped, !saved
-}
-
-
-# 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
-}
-
-Pool {
- Name = Full
- Pool Type = Backup
- Recycle = yes # Bacula can automatically recycle Volumes
- AutoPrune = yes # Prune expired volumes
- Volume Retention = 365d # one year
-}
-
-Pool {
- Name = Inc
- Pool Type = Backup
- Recycle = yes # Bacula can automatically recycle Volumes
- AutoPrune = yes # Prune expired volumes
- Volume Retention = 365d # one year
-}
-
-Pool {
- Name = Diff
- Pool Type = Backup
- Recycle = yes # Bacula can automatically recycle Volumes
- AutoPrune = yes # Prune expired volumes
- Volume Retention = 365d # one year
-}
-
-Pool {
- Name = Scratch
- Pool Type = Backup
- Recycle = yes # Bacula can automatically recycle Volumes
- AutoPrune = yes # Prune expired volumes
- Volume Retention = 365d # one year
- Recycle Pool = Scratch # recycle back here
- Cleaning Prefix = CLN
-}
--- /dev/null
+#
+# Bacula Director Configuration file
+#
+#
+
+Director { # define myself
+ Name = @hostname@-dir
+ DIRPort = @dirport@ # where we listen for UA connections
+ QueryFile = "@scriptdir@/query.sql"
+ WorkingDirectory = "@working_dir@"
+ PidDirectory = "@piddir@"
+ Maximum Concurrent Jobs = 40
+ Password = "pNvX1WiXnwv2C/F7E52LGvw6rKjbbPvu2kyuPa9pVaL3"
+ Messages = Daemon
+}
+
+#
+# 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 = LTO3
+ Messages = Standard
+ Pool = Default
+ Maximum Concurrent Jobs = 10
+ SpoolData = yes
+# Prefer Mounted Volumes = no
+}
+
+Job {
+ Name = "NightlySave1"
+ Type = Backup
+ Client=@hostname@-fd
+ FileSet="Full Set"
+ Storage = LTO1
+ Messages = Standard
+ Pool = Default
+ Write Bootstrap = "@working_dir@/NightlySave1.bsr"
+ Maximum Concurrent Jobs = 10
+ SpoolData = yes
+# Prefer Mounted Volumes = no
+ Client Run Before Job = "/bin/sleep 2"
+}
+
+Job {
+ Name = "NightlySave2"
+ Type = Backup
+ Client=@hostname@-fd
+ FileSet="Full Set"
+ Storage = LTO1
+ Messages = Standard
+ Pool = Default
+ Write Bootstrap = "@working_dir@/NightlySave2.bsr"
+ Maximum Concurrent Jobs = 10
+ SpoolData = yes
+# Prefer Mounted Volumes = no
+}
+
+Job {
+ Name = "NightlySave3"
+ Type = Backup
+ Client=@hostname@-fd
+ FileSet="Full Set"
+ Storage = LTO1
+ Messages = Standard
+ Pool = Default
+ Write Bootstrap = "@working_dir@/NightlySave3.bsr"
+ Maximum Concurrent Jobs = 10
+# Prefer Mounted Volumes = no
+}
+
+Job {
+ Name = "VerifyTape"
+ Type = Verify
+ Level = VolumeToCatalog
+ Client=@hostname@-fd
+ FileSet="Verify Set"
+ Storage = LTO1
+ Messages = Standard
+ Pool = Default
+ Write Bootstrap = "@working_dir@/NightlySave.bsr"
+ Maximum Concurrent Jobs = 4
+ SpoolData = yes
+# Prefer Mounted Volumes = no
+}
+
+
+# Standard Restore template, to be changed by Console program
+Job {
+ Name = "RestoreFiles"
+ Type = Restore
+ Client=@hostname@-fd
+ FileSet="Full Set"
+ Storage = LTO1
+ 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 = "Verify Set"
+ Include {
+ Options {
+ signature=MD5
+ verify=pins1
+ }
+ File = <@tmpdir@/file-list
+ }
+}
+
+
+# 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 = 10
+}
+
+# Client (File Services) to backup
+Client {
+ Name = @hostname@-fd2
+ Address = @hostname@
+ FDPort = @fdport@2
+ 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 = 10
+}
+
+# Client (File Services) to backup
+Client {
+ Name = @hostname@-fd3
+ Address = @hostname@
+ FDPort = @fdport@3
+ 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 = 10
+}
+
+# Client (File Services) to backup
+Client {
+ Name = @hostname@-fd4
+ Address = @hostname@
+ FDPort = @fdport@4
+ 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 = 10
+}
+
+# Client (File Services) to backup
+Client {
+ Name = @hostname@-fd5
+ Address = @hostname@
+ FDPort = @fdport@4
+ 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 = 10
+}
+
+
+Storage {
+ Name = LTO1
+ Address = @hostname@
+ SDPort = @sdport@
+ Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+ Device = LTO
+ Media Type = LTO1
+ Autochanger = yes
+ Maximum Concurrent Jobs = 50
+}
+
+Storage {
+ Name = LTO3
+ Address = @hostname@
+ SDPort = @sdport@
+ Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+ Device = LTO
+ Media Type = LTO3
+ Autochanger = yes
+ Maximum Concurrent Jobs = 50
+}
+
+################################################################
+# WARNING: Bacula doesn't support this kind of configuration
+# This is for testing purpose only !!!!!!!!!!!!
+################################################################
+
+Storage {
+ Name = LTO3_0
+ Address = @hostname@
+ SDPort = @sdport@
+ Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+ Device = LTO3_0
+ Media Type = LTO3
+ Autochanger = yes
+ Maximum Concurrent Jobs = 5
+}
+
+Storage {
+ Name = LTO3_1
+ Address = @hostname@
+ SDPort = @sdport@
+ Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+ Device = LTO3_1
+ Media Type = LTO3
+ Autochanger = yes
+ Maximum Concurrent Jobs = 5
+}
+
+Storage {
+ Name = LTO3_2
+ Address = @hostname@
+ SDPort = @sdport@
+ Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+ Device = LTO3_2
+ Media Type = LTO3
+ Autochanger = yes
+ Maximum Concurrent Jobs = 5
+}
+
+Storage {
+ Name = LTO1_3
+ Address = @hostname@
+ SDPort = @sdport@
+ Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+ Device = LTO1_3
+ Media Type = LTO1
+ Autochanger = yes
+ Maximum Concurrent Jobs = 5
+}
+
+Storage {
+ Name = LTO1_4
+ Address = @hostname@
+ SDPort = @sdport@
+ Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+ Device = LTO1_4
+ Media Type = LTO1
+ Autochanger = yes
+ Maximum Concurrent Jobs = 5
+}
+
+Storage {
+ Name = LTO1_5
+ Address = @hostname@
+ SDPort = @sdport@
+ Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+ Device = LTO1_5
+ Media Type = LTO1
+ Autochanger = yes
+ Maximum Concurrent Jobs = 5
+}
+
+Storage {
+ Name = LTO1-ANSI_6
+ Address = @hostname@
+ SDPort = @sdport@
+ Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9"
+ Device = LTO1-ANSI_6
+ Media Type = LTO1-ANSI
+ Autochanger = yes
+ Maximum Concurrent Jobs = 5
+}
+
+# Definition of File storage device
+Storage {
+ Name = File
+ Address = @hostname@ # N.B. Use a fully qualified name here
+ SDPort = @sdport@
+ Password = "ccV3lVTsQRsdIUGyab0N4sMDavui2hOBkmpBU0aQKOr9" # password for Storage daemon
+ Device = FileStorage # must be same as Device in Storage daemon
+ Media Type = FileMedia # must be same as MediaType in Storage daemon
+ Maximum Concurrent Jobs = 10
+}
+
+# Generic catalog service
+Catalog {
+ Name = MyCatalog
+ @libdbi@
+ dbname = regress; user = regress; password = ""
+}
+
+# Reasonable message delivery -- send most everything to email address
+# and to the console
+Messages {
+ Name = Standard
+ console = all, !skipped, !terminate, !restored
+ append = "@working_dir@/log" = all, !skipped
+ catalog = all, !skipped, !saved
+}
+
+#
+# Message delivery for daemon messages (no job).
+Messages {
+ Name = Daemon
+ console = all, !skipped, !saved
+ append = "@working_dir@/log" = all, !skipped
+ catalog = all, !skipped, !saved
+}
+
+
+# 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
+}
+
+Pool {
+ Name = Full
+ Pool Type = Backup
+ Recycle = yes # Bacula can automatically recycle Volumes
+ AutoPrune = yes # Prune expired volumes
+ Volume Retention = 365d # one year
+}
+
+Pool {
+ Name = Inc
+ Pool Type = Backup
+ Recycle = yes # Bacula can automatically recycle Volumes
+ AutoPrune = yes # Prune expired volumes
+ Volume Retention = 365d # one year
+}
+
+Pool {
+ Name = Diff
+ Pool Type = Backup
+ Recycle = yes # Bacula can automatically recycle Volumes
+ AutoPrune = yes # Prune expired volumes
+ Volume Retention = 365d # one year
+}
+
+Pool {
+ Name = Scratch
+ Pool Type = Backup
+ Recycle = yes # Bacula can automatically recycle Volumes
+ AutoPrune = yes # Prune expired volumes
+ Volume Retention = 365d # one year
+ Recycle Pool = Scratch # recycle back here
+ Cleaning Prefix = CLN
+}
+++ /dev/null
-
-# Bacula Storage Daemon Configuration file with
-# dummy Autochanger
-#
-#
-
-Storage { # definition of myself
- Name = @hostname@-sd
- SDPort = @sdport@ # 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 = LTO
- Changer Device = @working_dir@/ach/conf
- Changer Command ="@scriptdir@/disk-changer %c %o %S %a %d"
- Device = LTO3_0, LTO3_1, LTO3_2, LTO1_5, LTO1_3, LTO1_4, LTO1-ANSI_6
-}
-
-
-Device {
- Name = LTO3_0
- Media Type = LTO3
- Archive Device = @working_dir@/ach/drive0
- AutomaticMount = yes; # when device opened, read it
- Autochanger = yes
- Drive Index = 0
- AlwaysOpen = yes;
- RemovableMedia = yes;
- @@sbindir@/tape_options
- Maximum File Size = 7M
- Maximum Volume Size = 30M
- Maximum Job Spool Size = 10M
- Spool Directory = @working_dir@
- Device Type = Tape
-}
-
-Device {
- Name = LTO3_1
- Media Type = LTO3
- Archive Device = @working_dir@/ach/drive1
- AutomaticMount = yes; # when device opened, read it
- Autochanger = yes
- Drive Index = 1
- AlwaysOpen = yes;
- RemovableMedia = yes;
- @@sbindir@/tape_options
- Maximum File Size = 7M
- Maximum Volume Size = 30M
- Maximum Job Spool Size = 10M
- Spool Directory = @working_dir@
- Device Type = Tape
-}
-
-
-Device {
- Name = LTO3_2
- Media Type = LTO3
- Archive Device = @working_dir@/ach/drive2
- AutomaticMount = yes; # when device opened, read it
- Autochanger = yes
- Drive Index = 2
- AlwaysOpen = yes;
- RemovableMedia = yes;
- @@sbindir@/tape_options
- Auto Select = no
- Maximum File Size = 7M
- Maximum Volume Size = 30M
- Maximum Job Spool Size = 10M
- Spool Directory = @working_dir@
- Device Type = Tape
-}
-
-
-Device {
- Name = LTO1_3
- Media Type = LTO1
- Archive Device = @working_dir@/ach/drive3
- AutomaticMount = yes; # when device opened, read it
- Autochanger = yes
- Drive Index = 3
- AlwaysOpen = yes;
- RemovableMedia = yes;
- @@sbindir@/tape_options
- Maximum File Size = 7M
- Maximum Volume Size = 30M
- Maximum Job Spool Size = 10M
- Spool Directory = @working_dir@
- Device Type = Tape
-}
-
-
-Device {
- Name = LTO1_4
- Media Type = LTO1
- Archive Device = @working_dir@/ach/drive4
- AutomaticMount = yes; # when device opened, read it
- Autochanger = yes
- Drive Index = 4
- AlwaysOpen = yes;
- RemovableMedia = yes;
- @@sbindir@/tape_options
- Maximum File Size = 10M
- Maximum Volume Size = 30M
- Maximum Job Spool Size = 10M
- Spool Directory = @working_dir@
- Device Type = Tape
-}
-
-Device {
- Name = LTO1_5
- Media Type = LTO1
- Archive Device = @working_dir@/ach/drive5
- AutomaticMount = yes; # when device opened, read it
- Autochanger = yes
- Drive Index = 5
- AlwaysOpen = yes;
- RemovableMedia = yes;
- @@sbindir@/tape_options
- Maximum File Size = 10M
- Maximum Volume Size = 30M
- Maximum Job Spool Size = 10M
- Spool Directory = @working_dir@
- Device Type = Tape
- Auto Select = no
-}
-
-Device {
- Name = LTO1-ANSI_6
- Media Type = LTO1-ANSI
- Archive Device = @working_dir@/ach/drive6
- AutomaticMount = yes; # when device opened, read it
- Autochanger = yes
- Drive Index = 6
- AlwaysOpen = yes;
- RemovableMedia = yes;
- @@sbindir@/tape_options
- Maximum File Size = 10M
- Maximum Volume Size = 30M
- Maximum Job Spool Size = 10M
- Spool Directory = @working_dir@
- Device Type = Tape
- Label Type = ansi
-}
-
-
-#
-# Send all messages to the Director,
-# mount messages also are sent to the email address
-#
-Messages {
- Name = Standard
- director = @hostname@-dir = all, !terminate
-}
--- /dev/null
+
+# Bacula Storage Daemon Configuration file with
+# dummy Autochanger
+#
+#
+
+Storage { # definition of myself
+ Name = @hostname@-sd
+ SDPort = @sdport@ # 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 = LTO
+ Changer Device = @working_dir@/ach/conf
+ Changer Command ="@scriptdir@/disk-changer %c %o %S %a %d"
+ Device = LTO3_0, LTO3_1, LTO3_2, LTO1_5, LTO1_3, LTO1_4, LTO1-ANSI_6
+}
+
+
+Device {
+ Name = LTO3_0
+ Media Type = LTO3
+ Archive Device = @working_dir@/ach/drive0
+ AutomaticMount = yes; # when device opened, read it
+ Autochanger = yes
+ Drive Index = 0
+ AlwaysOpen = yes;
+ RemovableMedia = yes;
+ @@sbindir@/tape_options
+ Maximum File Size = 7M
+ Maximum Volume Size = 30M
+ Maximum Job Spool Size = 10M
+ Spool Directory = @working_dir@
+ Device Type = Tape
+}
+
+Device {
+ Name = LTO3_1
+ Media Type = LTO3
+ Archive Device = @working_dir@/ach/drive1
+ AutomaticMount = yes; # when device opened, read it
+ Autochanger = yes
+ Drive Index = 1
+ AlwaysOpen = yes;
+ RemovableMedia = yes;
+ @@sbindir@/tape_options
+ Maximum File Size = 7M
+ Maximum Volume Size = 30M
+ Maximum Job Spool Size = 10M
+ Spool Directory = @working_dir@
+ Device Type = Tape
+}
+
+
+Device {
+ Name = LTO3_2
+ Media Type = LTO3
+ Archive Device = @working_dir@/ach/drive2
+ AutomaticMount = yes; # when device opened, read it
+ Autochanger = yes
+ Drive Index = 2
+ AlwaysOpen = yes;
+ RemovableMedia = yes;
+ @@sbindir@/tape_options
+ Auto Select = no
+ Maximum File Size = 7M
+ Maximum Volume Size = 30M
+ Maximum Job Spool Size = 10M
+ Spool Directory = @working_dir@
+ Device Type = Tape
+}
+
+
+Device {
+ Name = LTO1_3
+ Media Type = LTO1
+ Archive Device = @working_dir@/ach/drive3
+ AutomaticMount = yes; # when device opened, read it
+ Autochanger = yes
+ Drive Index = 3
+ AlwaysOpen = yes;
+ RemovableMedia = yes;
+ @@sbindir@/tape_options
+ Maximum File Size = 7M
+ Maximum Volume Size = 30M
+ Maximum Job Spool Size = 10M
+ Spool Directory = @working_dir@
+ Device Type = Tape
+}
+
+
+Device {
+ Name = LTO1_4
+ Media Type = LTO1
+ Archive Device = @working_dir@/ach/drive4
+ AutomaticMount = yes; # when device opened, read it
+ Autochanger = yes
+ Drive Index = 4
+ AlwaysOpen = yes;
+ RemovableMedia = yes;
+ @@sbindir@/tape_options
+ Maximum File Size = 10M
+ Maximum Volume Size = 30M
+ Maximum Job Spool Size = 10M
+ Spool Directory = @working_dir@
+ Device Type = Tape
+}
+
+Device {
+ Name = LTO1_5
+ Media Type = LTO1
+ Archive Device = @working_dir@/ach/drive5
+ AutomaticMount = yes; # when device opened, read it
+ Autochanger = yes
+ Drive Index = 5
+ AlwaysOpen = yes;
+ RemovableMedia = yes;
+ @@sbindir@/tape_options
+ Maximum File Size = 10M
+ Maximum Volume Size = 30M
+ Maximum Job Spool Size = 10M
+ Spool Directory = @working_dir@
+ Device Type = Tape
+ Auto Select = no
+}
+
+Device {
+ Name = LTO1-ANSI_6
+ Media Type = LTO1-ANSI
+ Archive Device = @working_dir@/ach/drive6
+ AutomaticMount = yes; # when device opened, read it
+ Autochanger = yes
+ Drive Index = 6
+ AlwaysOpen = yes;
+ RemovableMedia = yes;
+ @@sbindir@/tape_options
+ Maximum File Size = 10M
+ Maximum Volume Size = 30M
+ Maximum Job Spool Size = 10M
+ Spool Directory = @working_dir@
+ Device Type = Tape
+ Label Type = ansi
+}
+
+
+#
+# Send all messages to the Director,
+# mount messages also are sent to the email address
+#
+Messages {
+ Name = Standard
+ director = @hostname@-dir = all, !terminate
+}
sed -f ${out} ${cwd}/scripts/cleanup-2drive.in >${cwd}/scripts/cleanup-2drive
sed -f ${out} ${cwd}/scripts/prepare-two-tapes.in >${cwd}/scripts/prepare-two-tapes
sed -f ${out} ${cwd}/scripts/bacula-dir.conf.testrunscript.in >${cwd}/scripts/bacula-dir.conf.testrunscript
-sed -f ${out} ${cwd}/scripts/bacula-dir-faketape.conf.in >${cwd}/scripts/bacula-dir-faketape.conf
-sed -f ${out} ${cwd}/scripts/bacula-sd-faketape.conf.in >${cwd}/scripts/bacula-sd-faketape.conf
+sed -f ${out} ${cwd}/scripts/bacula-dir-vtape.conf.in >${cwd}/scripts/bacula-dir-vtape.conf
+sed -f ${out} ${cwd}/scripts/bacula-sd-vtape.conf.in >${cwd}/scripts/bacula-sd-vtape.conf
sed -f ${out} ${cwd}/scripts/prepare-fake-autochanger.in >${cwd}/scripts/prepare-fake-autochanger
sed -f ${out} ${cwd}/scripts/tls-bacula-fd.conf.in >${cwd}/scripts/tls-bacula-fd.conf
sed -f ${out} ${cwd}/scripts/tls-bacula-sd.conf.in >${cwd}/scripts/tls-bacula-sd.conf
fi
}
-require_faketape()
+require_vtape()
{
-if test x${USE_FAKETAPE} = x ; then
- echo "$TestName test needs the faketape driver."
+if test x${USE_VTAPE} = x ; then
+ echo "$TestName test needs the vtape driver."
exit 1
fi
}
init_drive()
{
- if test a$USE_FAKETAPE = a; then
+ if test a$USE_VTAPE = a; then
mt -f $1 rewind
mt -f $1 weof
else
. scripts/functions
# check if user wants to run this test
-if test x$USE_FAKETAPE = x; then
+if test x$USE_VTAPE = x; then
exit 1
fi
+++ /dev/null
-#!/bin/sh
-#
-# Run backups with dummy tape driver
-# This test setups an Autochanger with 80 slots
-# and 5 drives (3 LTO3 and 2 LTO1)
-#
-# TAPE_DRIVE="$cwd/working/ach/drive0"
-# TAPE_DRIVE1="$cwd/working/ach/drive0"
-# AUTOCHANGER="$cwd/working/ach/conf"
-# USE_FAKETAPE=--enable-faketape
-# AUTOCHANGER_SCRIPT=disk-changer
-#
-
-TestName="faketape-test-changer"
-JobName=backup
-. scripts/functions
-
-require_faketape
-
-scripts/cleanup
-scripts/copy-tape-confs
-cp scripts/bacula-dir-faketape.conf bin/bacula-dir.conf
-cp scripts/bacula-sd-faketape.conf bin/bacula-sd.conf
-scripts/prepare-fake-autochanger
-
-echo "${cwd}/build" >${cwd}/tmp/file-list
-
-start_test
-
-when1=`perl -MPOSIX -e "print strftime('%F %T', localtime(time+30))"`
-when2=`perl -MPOSIX -e "print strftime('%F %T', localtime(time+45))"`
-
-clientname=`awk '/Name = .*-fd/ { if (!ok) { print $3 ; ok=1 } }' bin/bacula-dir.conf`
-
-# Catalog record for cleaning tape "CLN01" successfully created.
-# CLN01 | Cleaning
-
-# Write out bconsole commands
-cat <<END_OF_DATA >${cwd}/tmp/bconcmds
-@output /dev/null
-messages
-@$out ${cwd}/tmp/log6.out
-@#setdebug level=200 storage=LTO1
-label barcodes pool=Scratch slots=1-4 storage=LTO1-ANSI_6 drive=6
-yes
-label barcodes pool=Scratch slots=5-40 storage=LTO1 drive=3
-yes
-messages
-list volumes
-END_OF_DATA
-
-run_bacula
-stop_bacula
-
-cat <<END_OF_DATA >${cwd}/tmp/bconcmds
-@$out ${cwd}/tmp/log7.out
-label barcodes pool=Scratch slots=41-80 storage=LTO3 drive=0
-yes
-messages
-list volumes
-@$out ${cwd}/tmp/log1.out
-run storage=LTO3 when="$when1" job=NightlySave pool=Inc yes
-run storage=LTO3 when="$when1" job=NightlySave2 pool=Full yes
-run storage=LTO3 when="$when1" job=NightlySave1 pool=Default yes
-
-run storage=LTO1 when="$when1" job=NightlySave pool=Inc yes
-run storage=LTO1 when="$when1" job=NightlySave2 pool=Full yes
-run storage=LTO1 when="$when1" job=NightlySave1 pool=Default yes
-run storage=LTO1 when="$when1" job=NightlySave3 pool=Diff yes
-
-run storage=LTO1-ANSI_6 when="$when2" job=NightlySave pool=Inc yes
-wait
-messages
-quit
-END_OF_DATA
-
-run_bacula
-check_for_zombie_jobs storage=LTO1 $clientname
-check_for_zombie_jobs storage=LTO3 $clientname
-check_for_zombie_jobs storage=LTO1-ANSI_6 client=$clientname
-
-touch ${cwd}/build/po/*.po
-
-cat <<END_OF_DATA >${cwd}/tmp/bconcmds
-@$out ${cwd}/tmp/log2.out
-run storage=LTO1-ANSI_6 job=NightlySave3 pool=Inc yes
-wait
-messages
-@#
-@# now do a restore
-@#
-restore fileset="Full Set" pool=Diff where=${cwd}/tmp/bacula-restores select all done
-yes
-wait
-messages
-wait
-messages
-END_OF_DATA
-
-run_bconsole
-check_for_zombie_jobs storage=LTO1 client=$clientname
-check_for_zombie_jobs storage=LTO3 client=$clientname
-check_for_zombie_jobs storage=LTO1-ANSI_6 client=$clientname
-stop_bacula
-
-check_two_logs
-check_restore_diff
-
-grep LTO1_5 tmp/log1.out > /dev/null
-if test $? = 0; then
- echo "AutoSelect option broken"
- bstat=1
-fi
-
-grep 'Error: Re-read' tmp/log1.out > /dev/null
-if test $? = 0; then
- echo "Found Re-read errors"
- bstat=1
-fi
-
-end_test
-
--- /dev/null
+#!/bin/sh
+#
+# Run backups with dummy tape driver
+# This test setups an Autochanger with 80 slots
+# and 5 drives (3 LTO3 and 2 LTO1)
+#
+# TAPE_DRIVE="$cwd/working/ach/drive0"
+# TAPE_DRIVE1="$cwd/working/ach/drive0"
+# AUTOCHANGER="$cwd/working/ach/conf"
+# USE_VTAPE=yes
+# AUTOCHANGER_SCRIPT=disk-changer
+#
+
+TestName="vtape-test-changer"
+JobName=backup
+. scripts/functions
+
+require_vtape
+
+scripts/cleanup
+scripts/copy-tape-confs
+cp scripts/bacula-dir-vtape.conf bin/bacula-dir.conf
+cp scripts/bacula-sd-vtape.conf bin/bacula-sd.conf
+scripts/prepare-fake-autochanger
+
+echo "${cwd}/build" >${cwd}/tmp/file-list
+
+start_test
+
+when1=`perl -MPOSIX -e "print strftime('%F %T', localtime(time+30))"`
+when2=`perl -MPOSIX -e "print strftime('%F %T', localtime(time+45))"`
+
+clientname=`awk '/Name = .*-fd/ { if (!ok) { print $3 ; ok=1 } }' bin/bacula-dir.conf`
+
+# Catalog record for cleaning tape "CLN01" successfully created.
+# CLN01 | Cleaning
+
+# Write out bconsole commands
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@output /dev/null
+messages
+@$out ${cwd}/tmp/log6.out
+@#setdebug level=200 storage=LTO1
+label barcodes pool=Scratch slots=1-4 storage=LTO1-ANSI_6 drive=6
+yes
+label barcodes pool=Scratch slots=5-40 storage=LTO1 drive=3
+yes
+messages
+list volumes
+END_OF_DATA
+
+run_bacula
+stop_bacula
+
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@$out ${cwd}/tmp/log7.out
+label barcodes pool=Scratch slots=41-80 storage=LTO3 drive=0
+yes
+messages
+list volumes
+@$out ${cwd}/tmp/log1.out
+run storage=LTO3 when="$when1" job=NightlySave pool=Inc yes
+run storage=LTO3 when="$when1" job=NightlySave2 pool=Full yes
+run storage=LTO3 when="$when1" job=NightlySave1 pool=Default yes
+
+run storage=LTO1 when="$when1" job=NightlySave pool=Inc yes
+run storage=LTO1 when="$when1" job=NightlySave2 pool=Full yes
+run storage=LTO1 when="$when1" job=NightlySave1 pool=Default yes
+run storage=LTO1 when="$when1" job=NightlySave3 pool=Diff yes
+
+run storage=LTO1-ANSI_6 when="$when2" job=NightlySave pool=Inc yes
+wait
+messages
+quit
+END_OF_DATA
+
+run_bacula
+check_for_zombie_jobs storage=LTO1 $clientname
+check_for_zombie_jobs storage=LTO3 $clientname
+check_for_zombie_jobs storage=LTO1-ANSI_6 $clientname
+
+touch ${cwd}/build/po/*.po
+
+cat <<END_OF_DATA >${cwd}/tmp/bconcmds
+@$out ${cwd}/tmp/log2.out
+run storage=LTO1-ANSI_6 job=NightlySave3 pool=Inc yes
+wait
+messages
+@#
+@# now do a restore
+@#
+restore fileset="Full Set" pool=Diff where=${cwd}/tmp/bacula-restores select all done
+yes
+wait
+messages
+wait
+messages
+END_OF_DATA
+
+run_bconsole
+check_for_zombie_jobs storage=LTO1 $clientname
+check_for_zombie_jobs storage=LTO3 $clientname
+check_for_zombie_jobs storage=LTO1-ANSI_6 $clientname
+stop_bacula
+
+check_two_logs
+check_restore_diff
+
+grep LTO1_5 tmp/log1.out > /dev/null
+if test $? = 0; then
+ echo "AutoSelect option broken"
+ bstat=1
+fi
+
+grep 'Error: Re-read' tmp/log1.out > /dev/null
+if test $? = 0; then
+ echo "Found Re-read errors"
+ bstat=1
+fi
+
+end_test
+