#!/bin/sh # # This script uses the virtual disk autochanger # TestName="multi-storage-test" JobName=backup . scripts/functions scripts/cleanup scripts/copy-2disk-confs scripts/prepare-disk-changer # create a new bacula-sd.conf perl -ne ' if (/SDPort = /) { $_ =~ s/(\d+)/1$1/;} if (/Name = .+?-sd/) { $_ =~ s/-sd/-sd2/;} if (/WorkingDirectory/) { $_ =~ s/"$/2"/; } print; ' $conf/bacula-sd.conf > $conf/bacula-sd2.conf mkdir -p ${working}2 perl -ne ' if (/^Storage {/) { $in=1; $nb++; } if (/^}/) { $in=0 } if (/SDPort = (\d+)/ && $in) {if ($nb == 2) { $_ = " SDPort = 1$1\n"; }} print; ' $conf/bacula-dir.conf > $tmp/1 cp $tmp/1 $conf/bacula-dir.conf sed 's/bacula-sd.conf/bacula-sd2.conf/' $scripts/bacula-ctl-sd \ > $tmp/bacula-ctl-sd chmod +x $tmp/bacula-ctl-sd disable_pluguins echo "${cwd}/build" >${cwd}/tmp/file-list change_jobname $JobName start_test # Write out bconsole commands cat <${cwd}/tmp/bconcmds @$out /dev/null messages @$out ${cwd}/tmp/log1.out label storage=tape volume=TestVolume001 Pool=Default slot=1 drive=0 label storage=File volume=TestVolume002 Pool=Default run job=$JobName storage=tape yes wait messages quit END_OF_DATA $tmp/bacula-ctl-sd start &> /dev/null run_bacula echo "ficheriro1.txt" >${cwd}/build/po/ficheriro1.txt echo "ficheriro2.txt" >${cwd}/build/po/ficheriro2.txt cat <${cwd}/tmp/bconcmds @$out /dev/null messages @$out ${cwd}/tmp/log1.out @# Force Incremental on the second Volume run level=Incremental storage=File job=$JobName yes wait messages @# @# now do a restore @# @$out ${cwd}/tmp/log2.out setdebug trace=1 level=110 client setdebug trace=1 level=110 director restore where=${cwd}/tmp/bacula-restores select all done yes wait messages quit END_OF_DATA run_bconsole check_for_zombie_jobs storage=File check_for_zombie_jobs storage=tape stop_bacula $tmp/bacula-ctl-sd stop &> /dev/null check_two_logs check_restore_diff end_test