#!/bin/sh # # Run a backup of the Bacula build directory on two Volumes # then migrate it to another device. # # This script uses the virtual disk autochanger # TestName="migration-volume-test" JobName=MigVolBackup . scripts/functions set_debug 0 . config.out scripts/cleanup scripts/copy-migration-confs scripts/prepare-two-disks echo "${cwd}/build" >/tmp/file-list #cp ${cwd}/bin/bacula-sd.conf ${cwd}/tmp/1 #sed "s%# Maximum File Size% Maximum File Size%" ${cwd}/tmp/1 >${cwd}/bin/bacula-sd.conf change_jobname NightlySave $JobName start_test # # Note, we first backup into Pool Default, # then Migrate into Pool Full. # Pool Default uses Storage=File # Pool Full uses Storage=DiskChanger # Write out bconsole commands cat <tmp/bconcmds @output messages @$out tmp/log1.out label storage=File volume=FileVolume001 Pool=Default label storage=File volume=FileVolume002 Pool=Default update Volume=FileVolume001 MaxVolBytes=3000000 pool=Default label storage=DiskChanger volume=ChangerVolume001 slot=1 Pool=Full drive=0 label storage=DiskChanger volume=ChangerVolume002 slot=2 Pool=Full drive=0 @# run job=$JobName yes wait run job=$JobName yes wait update volume=FileVolume001 VolStatus=Used update volume=FileVolume002 VolStatus=Used @#list volumes @#list jobs @# should migrate two jobs @# setdebug level=11 dir @echo "Run migrate-volume Job" @#setdebug level=100 dir run job=migrate-volume yes @sleep 5 list jobs llist jobid=1 llist jobid=2 llist jobid=3 llist jobid=4 llist jobid=5 status storage=DiskChanger wait list volumes list jobs llist jobid=1 llist jobid=2 llist jobid=3 llist jobid=4 llist jobid=5 sql select * from JobMedia where JobId=1; @# Now run a second Migration job, which should do nothing run job=migrate-volume yes wait list jobs @# ensure we don't pickup old backup by purging volume @# purge volume=FileVolume001 @# purge volume=FileVolume002 @echo "Now do a restore" messages @# @# now do a restore @# @$out tmp/log2.out restore where=${cwd}/tmp/bacula-restores select storage=DiskChanger unmark * mark * done yes wait messages @output quit END_OF_DATA run_bacula check_for_zombie_jobs storage=File stop_bacula exit check_two_logs check_restore_diff end_test